diff --git a/.cmake-format.py b/.cmake-format.py index a0eeb612..5b36f67a 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -17,7 +17,7 @@ 'POST_LINK_JS_SOURCES': '*', 'FEATURES': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_add_executable': { 'kwargs': { @@ -32,7 +32,7 @@ 'OBJLIB_DEPS': '*', 'LIB_DEPS': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_add_library': { 'kwargs': { @@ -49,21 +49,21 @@ 'LIB_DEPS': '*', 'PUBLIC_INCLUDES': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_generate_emscripten_glue': { 'kwargs': { 'INPUT_IDL': '*', 'OUTPUT_PATH': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_get_required_emscripten_flags': { 'kwargs': { 'FLAG_LIST_VAR_COMPILER': '*', 'FLAG_LIST_VAR_LINKER': '*', }, - 'pargs': 0 + 'pargs': 0, }, 'draco_option': { 'kwargs': { @@ -71,7 +71,37 @@ 'HELPSTRING': '*', 'VALUE': '*', }, - 'pargs': 0 + 'pargs': 0, + }, + # Rules for built in CMake commands and those from dependencies. + 'list': { + 'kwargs': { + 'APPEND': '*', + 'FILTER': '*', + 'FIND': '*', + 'GET': '*', + 'INSERT': '*', + 'JOIN': '*', + 'LENGTH': '*', + 'POP_BACK': '*', + 'POP_FRONT': '*', + 'PREPEND': '*', + 'REMOVE_DUPLICATES': '*', + 'REMOVE_ITEM': '*', + 'REVERSE': '*', + 'SORT': '*', + 'SUBLIST': '*', + 'TRANSFORM': '*', + }, + }, + 'protobuf_generate': { + 'kwargs': { + 'IMPORT_DIRS': '*', + 'LANGUAGE': '*', + 'OUT_VAR': '*', + 'PROTOC_OUT_DIR': '*', + 'PROTOS': '*', + }, }, } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecac61f8..eb60ea38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,8 +105,8 @@ jobs: cmake .. -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_C_COMPILER=gcc-10 \ + -DCMAKE_CXX_COMPILER=g++-10 \ -DDRACO_TESTS=ON cmake_build_command: cmake --build . -- -j2 draco_test_command: ./draco_tests @@ -116,32 +116,8 @@ jobs: cmake .. -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_CXX_COMPILER=g++ \ - -DDRACO_TESTS=ON \ - -DDRACO_TRANSCODER_SUPPORTED=ON - cmake_build_command: cmake --build . -- -j2 - draco_test_command: ./draco_tests - - - test_name: ubuntu22-make-clang14-release-static - os: ubuntu-22.04 - cmake_configure_command: |- - cmake .. -G "Unix Makefiles" \ - -DBUILD_SHARED_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=clang-14 \ - -DCMAKE_CXX_COMPILER=clang++-14 \ - -DDRACO_TESTS=ON - cmake_build_command: cmake --build . -- -j2 - draco_test_command: ./draco_tests - - test_name: ubuntu22-make-clang14-release-static-with-transcoder - os: ubuntu-22.04 - cmake_configure_command: |- - cmake .. -G "Unix Makefiles" \ - -DBUILD_SHARED_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=clang-14 \ - -DCMAKE_CXX_COMPILER=clang++-14 \ + -DCMAKE_C_COMPILER=gcc-10 \ + -DCMAKE_CXX_COMPILER=g++-10 \ -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . -- -j2 @@ -153,8 +129,8 @@ jobs: cmake .. -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_C_COMPILER=gcc-10 \ + -DCMAKE_CXX_COMPILER=g++-10 \ -DDRACO_TESTS=ON cmake_build_command: cmake --build . -- -j2 draco_test_command: ./draco_tests @@ -164,8 +140,8 @@ jobs: cmake .. -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_C_COMPILER=gcc-10 \ + -DCMAKE_CXX_COMPILER=g++-10 \ -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . -- -j2 @@ -189,8 +165,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . --config Release -- -m:2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: Release/draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: Release/draco_tests - test_name: windows-msvc-release-static os: windows-2019 @@ -210,8 +185,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . --config Release -- -m:2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: Release/draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: Release/draco_tests - test_name: windows-make-release-shared os: windows-2019 @@ -235,8 +209,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . -- -j2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: ./draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: ./draco_tests - test_name: windows-make-release-static os: windows-2019 @@ -260,8 +233,7 @@ jobs: -DDRACO_TESTS=ON \ -DDRACO_TRANSCODER_SUPPORTED=ON cmake_build_command: cmake --build . -- -j2 - # TODO(https://github.com/google/draco/issues/938): Flaking on this target. - draco_test_command: ./draco_tests --gtest_filter=-GltfDecoderTest.TestLoadUnsupportedTexCoordAttributes + draco_test_command: ./draco_tests name: test-${{ matrix.test_name }} runs-on: ${{ matrix.os }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f07ff02..a93267d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,7 @@ draco_track_configuration_variable(DRACO_GENERATED_SOURCES_DIRECTORY) # Controls use of std::mutex and absl::Mutex in ThreadPool. draco_track_configuration_variable(DRACO_THREADPOOL_USE_STD_MUTEX) + if(DRACO_VERBOSE) draco_dump_cmake_flag_variables() draco_dump_tracked_configuration_variables() @@ -86,539 +87,529 @@ 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") + 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") + 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") + 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") + "${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/decode.cc" + "${draco_src_root}/compression/decode.h") list( - APPEND - 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") + APPEND 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_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_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_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_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_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_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_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_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_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") + 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") + 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") + 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") + 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") + 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") + 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") + 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" + 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" + 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") + 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 - "${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") + 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 - "${draco_src_root}/io/gltf_decoder.cc" - "${draco_src_root}/io/gltf_decoder.h" - "${draco_src_root}/io/gltf_encoder.cc" - "${draco_src_root}/io/gltf_encoder.h" - "${draco_src_root}/io/gltf_utils.cc" - "${draco_src_root}/io/gltf_utils.h" - "${draco_src_root}/io/image_compression_options.h" - "${draco_src_root}/io/scene_io.cc" - "${draco_src_root}/io/scene_io.h" - "${draco_src_root}/io/texture_io.cc" - "${draco_src_root}/io/texture_io.h" - "${draco_src_root}/io/tiny_gltf_utils.cc" - "${draco_src_root}/io/tiny_gltf_utils.h") + 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" + "${draco_src_root}/io/gltf_encoder.h" + "${draco_src_root}/io/gltf_utils.cc" + "${draco_src_root}/io/gltf_utils.h" + "${draco_src_root}/io/image_compression_options.h" + "${draco_src_root}/io/scene_io.cc" + "${draco_src_root}/io/scene_io.h" + "${draco_src_root}/io/texture_io.cc" + "${draco_src_root}/io/texture_io.h" + "${draco_src_root}/io/tiny_gltf_utils.cc" + "${draco_src_root}/io/tiny_gltf_utils.h") 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") + 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 - "${draco_src_root}/mesh/mesh_connected_components.cc" - "${draco_src_root}/mesh/mesh_connected_components.h" - "${draco_src_root}/mesh/mesh_splitter.cc" - "${draco_src_root}/mesh/mesh_splitter.h" - "${draco_src_root}/mesh/mesh_utils.cc" - "${draco_src_root}/mesh/mesh_utils.h") + APPEND draco_mesh_sources + "${draco_src_root}/mesh/mesh_connected_components.h" + "${draco_src_root}/mesh/mesh_splitter.cc" + "${draco_src_root}/mesh/mesh_splitter.h" + "${draco_src_root}/mesh/mesh_utils.cc" + "${draco_src_root}/mesh/mesh_utils.h") 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" - "${draco_src_root}/scene/light.h" - "${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" - "${draco_src_root}/scene/scene_utils.h" - "${draco_src_root}/scene/trs_matrix.cc" - "${draco_src_root}/scene/trs_matrix.h") + APPEND draco_scene_sources + "${draco_src_root}/scene/instance_array.cc" + "${draco_src_root}/scene/instance_array.h" + "${draco_src_root}/scene/light.cc" + "${draco_src_root}/scene/light.h" + "${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" + "${draco_src_root}/scene/scene_utils.h" + "${draco_src_root}/scene/trs_matrix.cc" + "${draco_src_root}/scene/trs_matrix.h") 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" - "${draco_src_root}/texture/texture_library.cc" - "${draco_src_root}/texture/texture_library.h" - "${draco_src_root}/texture/texture_map.cc" - "${draco_src_root}/texture/texture_map.h" - "${draco_src_root}/texture/texture_transform.cc" - "${draco_src_root}/texture/texture_transform.h" - "${draco_src_root}/texture/texture_utils.cc" - "${draco_src_root}/texture/texture_utils.h") + APPEND draco_texture_sources + "${draco_src_root}/texture/source_image.cc" + "${draco_src_root}/texture/source_image.h" + "${draco_src_root}/texture/texture.h" + "${draco_src_root}/texture/texture_library.cc" + "${draco_src_root}/texture/texture_library.h" + "${draco_src_root}/texture/texture_map.cc" + "${draco_src_root}/texture/texture_map.h" + "${draco_src_root}/texture/texture_transform.cc" + "${draco_src_root}/texture/texture_transform.h" + "${draco_src_root}/texture/texture_utils.cc" + "${draco_src_root}/texture/texture_utils.h") + + endif() # @@ -633,66 +624,66 @@ if(EMSCRIPTEN AND DRACO_JS_GLUE) 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_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}) + 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_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}) + 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") @@ -704,8 +695,8 @@ if(EMSCRIPTEN AND DRACO_JS_GLUE) 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( @@ -966,43 +957,44 @@ else() 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_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) + 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) + draco_texture) + endif() # Library targets that consume the object collections. @@ -1025,7 +1017,8 @@ else() TYPE ${draco_lib_type} DEFINES ${draco_defines} INCLUDES ${draco_include_paths} - OBJLIB_DEPS ${draco_object_library_deps}) + OBJLIB_DEPS ${draco_object_library_deps} + LIB_DEPS ${draco_lib_deps}) add_library(draco::draco ALIAS draco) else() @@ -1035,7 +1028,8 @@ else() TYPE STATIC DEFINES ${draco_defines} INCLUDES ${draco_include_paths} - OBJLIB_DEPS ${draco_object_library_deps}) + OBJLIB_DEPS ${draco_object_library_deps} + LIB_DEPS ${draco_lib_deps}) if(BUILD_SHARED_LIBS) draco_add_library( @@ -1129,6 +1123,19 @@ else() DEFINES ${draco_defines} INCLUDES ${draco_include_paths} LIB_DEPS ${draco_dependency}) + + if(DRACO_SIMPLIFIER_SUPPORTED) + draco_add_executable( + NAME draco_simplifier + SOURCES ${draco_pipeline_proto_header} + "${draco_src_root}/tools/draco_simplifier.cc" + "${draco_src_root}/tools/draco_simplifier_lib.cc" + "${draco_src_root}/tools/draco_simplifier_lib.h" + ${draco_io_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LIB_DEPS ${draco_dependency}) + endif() endif() draco_setup_install_target() diff --git a/README.md b/README.md index 64135b82..4cc717c8 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,16 @@ 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.6 release: +* Using the versioned www.gstatic.com WASM and Javascript decoders continues + to be recommended. To use v1.5.6, use this URL: + * https://www.gstatic.com/draco/versioned/decoders/1.5.6/* +* The CMake flag DRACO_DEBUG_MSVC_WARNINGS has been replaced with + DRACO_DEBUG_COMPILER_WARNINGS, and the behavior has changed. It is now a + boolean flag defined in draco_options.cmake. +* Bug fixes. +* Security fixes. + ### Version 1.5.5 release: * Using the versioned www.gstatic.com WASM and Javascript decoders continues to be recommended. To use v1.5.5, use this URL: @@ -254,9 +264,9 @@ will output usage and options. Encoding Tool ------------- -`draco_encoder` will read OBJ, STL or PLY files as input, and output Draco-encoded -files. We have included Stanford's [Bunny] mesh for testing. The basic command -line looks like this: +`draco_encoder` will read OBJ, STL or PLY files as input, and output +Draco-encoded files. We have included Stanford's [Bunny] mesh for testing. The +basic command line looks like this: ~~~~~ bash ./draco_encoder -i testdata/bun_zipper.ply -o out.drc @@ -309,8 +319,8 @@ and denser point clouds. Decoding Tool ------------- -`draco_decoder` will read Draco files as input, and output OBJ, STL or PLY files. -The basic command line looks like this: +`draco_decoder` will read Draco files as input, and output OBJ, STL or PLY +files. The basic command line looks like this: ~~~~~ bash ./draco_decoder -i in.drc -o out.obj diff --git a/cmake/draco_build_definitions.cmake b/cmake/draco_build_definitions.cmake index b7e6be4c..4dc23233 100644 --- a/cmake/draco_build_definitions.cmake +++ b/cmake/draco_build_definitions.cmake @@ -31,10 +31,6 @@ macro(set_draco_target) endif() set(draco_plugin_dependency draco_static) endif() - - if(BUILD_SHARED_LIBS) - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - endif() endmacro() # Configures flags and sets build system globals. @@ -60,7 +56,7 @@ macro(draco_set_build_definitions) # passed to libtool. # # We set DRACO_SOVERSION = [c-a].a.r - set(LT_CURRENT 7) + set(LT_CURRENT 8) set(LT_REVISION 0) set(LT_AGE 0) math(EXPR DRACO_SOVERSION_MAJOR "${LT_CURRENT} - ${LT_AGE}") @@ -70,21 +66,20 @@ macro(draco_set_build_definitions) unset(LT_AGE) list(APPEND draco_include_paths "${draco_root}" "${draco_root}/src" - "${draco_build}") - - if(DRACO_ABSL) - list(APPEND draco_include_paths "${draco_root}/third_party/abseil-cpp") - endif() + "${draco_build}") if(DRACO_TRANSCODER_SUPPORTED) draco_setup_eigen() draco_setup_filesystem() draco_setup_tinygltf() + + endif() 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") @@ -92,37 +87,22 @@ macro(draco_set_build_definitions) if(BUILD_SHARED_LIBS) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) endif() + endif() - if(MSVC AND NOT DRACO_DEBUG_MSVC_WARNINGS) - # Silence some excessively noisy MSVC warnings when not actively seeking - # to address them. These are harmless and serve only to make the build - # output extremely verbose. To enable these warnings set the MSVC warning - # level to 4, or define DRACO_DEBUG_MSVC_WARNINGS on the CMake command - # line when configuring Draco. - - # warning C4018: '': signed/unsigned mismatch. - list(APPEND draco_msvc_cxx_flags /w44018) - - # warning C4146: unary minus operator applied to unsigned type, result - # still unsigned - list(APPEND draco_msvc_cxx_flags /w44146) - - # warning C4244: 'return': conversion from '' to '', possible - # loss of data. - list(APPEND draco_msvc_cxx_flags /w44244) - - # warning C4267: 'initializing' conversion from '' to '', - # possible loss of data. - list(APPEND draco_msvc_cxx_flags /w44267) - - # warning C4804: '': unsafe use of type '' in operation. - list(APPEND draco_msvc_cxx_flags /w44804) - endif() - else() + if(NOT MSVC) if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) # Ensure 64-bit platforms can support large files. list(APPEND draco_defines "_LARGEFILE_SOURCE" "_FILE_OFFSET_BITS=64") endif() + + if(NOT DRACO_DEBUG_COMPILER_WARNINGS) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + list(APPEND draco_clang_cxx_flags + "-Wno-implicit-const-int-float-conversion") + else() + list(APPEND draco_base_cxx_flags "-Wno-deprecated-declarations") + endif() + endif() endif() if(ANDROID) diff --git a/cmake/draco_dependencies.cmake b/cmake/draco_dependencies.cmake index 76544187..91ee0839 100644 --- a/cmake/draco_dependencies.cmake +++ b/cmake/draco_dependencies.cmake @@ -106,19 +106,15 @@ 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_main "${gtest_path}/googletest/src/gtest_main.cc") endmacro() + # Determines the location of TinyGLTF and updates the build configuration # accordingly. macro(draco_setup_tinygltf) diff --git a/cmake/draco_emscripten.cmake b/cmake/draco_emscripten.cmake index 7779dd4e..c9616ae8 100644 --- a/cmake/draco_emscripten.cmake +++ b/cmake/draco_emscripten.cmake @@ -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") diff --git a/cmake/draco_flags.cmake b/cmake/draco_flags.cmake index 349113a6..f3b24c6e 100644 --- a/cmake/draco_flags.cmake +++ b/cmake/draco_flags.cmake @@ -99,8 +99,8 @@ macro(draco_test_cxx_flag) # are passed as a list it will remove the list separators, and attempt to run # a compile command using list entries concatenated together as a single # argument. Avoid the problem by forcing the argument to be a string. - draco_set_and_stringify(SOURCE_VARS all_cxx_flags DEST all_cxx_flags) - check_cxx_compiler_flag("${all_cxx_flags}" draco_all_cxx_flags_pass) + draco_set_and_stringify(SOURCE_VARS all_cxx_flags DEST all_cxx_flags_string) + check_cxx_compiler_flag("${all_cxx_flags_string}" draco_all_cxx_flags_pass) if(cxx_test_FLAG_REQUIRED AND NOT draco_all_cxx_flags_pass) draco_die("Flag test failed for required flag(s): " diff --git a/cmake/draco_install.cmake b/cmake/draco_install.cmake index f7e1153e..3be1ba16 100644 --- a/cmake/draco_install.cmake +++ b/cmake/draco_install.cmake @@ -23,10 +23,10 @@ include(GNUInstallDirs) # Sets up the draco install targets. Must be called after the static library # target is created. macro(draco_setup_install_target) - set(bin_path "${CMAKE_INSTALL_FULL_BINDIR}") - set(data_path "${CMAKE_INSTALL_FULL_DATAROOTDIR}") - set(includes_path "${CMAKE_INSTALL_FULL_INCLUDEDIR}") - set(libs_path "${CMAKE_INSTALL_FULL_LIBDIR}") + set(bin_path "${CMAKE_INSTALL_BINDIR}") + set(data_path "${CMAKE_INSTALL_DATAROOTDIR}") + set(includes_path "${CMAKE_INSTALL_INCLUDEDIR}") + set(libs_path "${CMAKE_INSTALL_LIBDIR}") foreach(file ${draco_sources}) if(file MATCHES "h$") diff --git a/cmake/draco_options.cmake b/cmake/draco_options.cmake index 42a15b45..08514977 100644 --- a/cmake/draco_options.cmake +++ b/cmake/draco_options.cmake @@ -127,6 +127,10 @@ macro(draco_set_default_options) NAME DRACO_TRANSCODER_SUPPORTED HELPSTRING "Enable the Draco transcoder." VALUE OFF) + draco_option( + NAME DRACO_DEBUG_COMPILER_WARNINGS + HELPSTRING "Turn on more warnings." + VALUE OFF) draco_check_deprecated_options() endmacro() @@ -231,6 +235,8 @@ macro(draco_set_optional_features) if(DRACO_TRANSCODER_SUPPORTED) draco_enable_feature(FEATURE "DRACO_TRANSCODER_SUPPORTED") endif() + + endmacro() # Macro that handles tracking of Draco preprocessor symbols for the purpose of @@ -282,8 +288,56 @@ function(draco_generate_features_h) file(APPEND "${draco_features_file_name}.new" "#define ${feature}\n") endforeach() + if(MSVC) + if(NOT DRACO_DEBUG_COMPILER_WARNINGS) + file(APPEND "${draco_features_file_name}.new" + "// Enable DRACO_DEBUG_COMPILER_WARNINGS at CMake generation \n" + "// time to remove these pragmas.\n") + + # warning C4018: '': signed/unsigned mismatch. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4018)\n") + + # warning C4146: unary minus operator applied to unsigned type, result + # still unsigned + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4146)\n") + + # warning C4244: 'return': conversion from '' to '', possible + # loss of data. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4244)\n") + + # warning C4267: 'initializing' conversion from '' to '', + # possible loss of data. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4267)\n") + + # warning C4305: 'context' : truncation from 'type1' to 'type2'. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4305)\n") + + # warning C4661: 'identifier' : no suitable definition provided for + # explicit template instantiation request. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4661)\n") + + # warning C4800: Implicit conversion from 'type' to bool. Possible + # information loss. + # Also, in older MSVC releases: + # warning C4800: 'type' : forcing value to bool 'true' or 'false' + # (performance warning). + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4800)\n") + + # warning C4804: '': unsafe use of type '' in operation. + file(APPEND "${draco_features_file_name}.new" + "#pragma warning(disable:4804)\n") + endif() + endif() + file(APPEND "${draco_features_file_name}.new" - "\n#endif // DRACO_FEATURES_H_") + "\n#endif // DRACO_FEATURES_H_\n") # Will replace ${draco_features_file_name} only if the file content has # changed. This prevents forced Draco rebuilds after CMake runs. diff --git a/cmake/draco_sanitizer.cmake b/cmake/draco_sanitizer.cmake index 84e1306a..77d14148 100644 --- a/cmake/draco_sanitizer.cmake +++ b/cmake/draco_sanitizer.cmake @@ -26,7 +26,7 @@ macro(draco_configure_sanitizer) 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 diff --git a/cmake/draco_targets.cmake b/cmake/draco_targets.cmake index 9892bee4..c8c79f51 100644 --- a/cmake/draco_targets.cmake +++ b/cmake/draco_targets.cmake @@ -108,7 +108,8 @@ macro(draco_add_executable) endif() add_executable(${exe_NAME} ${exe_SOURCES}) - target_compile_features(${exe_NAME} PRIVATE cxx_std_11) + + target_compile_features(${exe_NAME} PUBLIC cxx_std_11) if(NOT EMSCRIPTEN) set_target_properties(${exe_NAME} PROPERTIES VERSION ${DRACO_VERSION}) @@ -161,12 +162,7 @@ macro(draco_add_executable) endif() if(exe_LIB_DEPS) - unset(exe_static) - if("${CMAKE_EXE_LINKER_FLAGS} ${DRACO_EXE_LINKER_FLAGS}" MATCHES "static") - set(exe_static ON) - endif() - - if(exe_static AND CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") + if(CMAKE_CXX_COMPILER_ID MATCHES "^Clang|^GNU") # Third party dependencies can introduce dependencies on system and test # libraries. Since the target created here is an executable, and CMake # does not provide a method of controlling order of link dependencies, @@ -174,6 +170,10 @@ macro(draco_add_executable) # ensure that dependencies of third party targets can be resolved when # those dependencies happen to be resolved by dependencies of the current # target. + # TODO(tomfinegan): For portability use LINK_GROUP with RESCAN instead of + # directly (ab)using compiler/linker specific flags once CMake v3.24 is in + # wider use. See: + # https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#genex:LINK_GROUP list(INSERT exe_LIB_DEPS 0 -Wl,--start-group) list(APPEND exe_LIB_DEPS -Wl,--end-group) endif() @@ -290,8 +290,16 @@ macro(draco_add_library) endif() add_library(${lib_NAME} ${lib_TYPE} ${lib_SOURCES}) - target_compile_features(${lib_NAME} PUBLIC cxx_std_11) + + target_compile_features(${lib_NAME} PUBLIC cxx_std_11) + target_include_directories(${lib_NAME} PUBLIC $) + + if(BUILD_SHARED_LIBS) + # Enable PIC for all targets in shared configurations. + set_target_properties(${lib_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON) + endif() + if(lib_SOURCES) draco_process_intrinsics_sources(TARGET ${lib_NAME} SOURCES ${lib_SOURCES}) endif() diff --git a/cmake/draco_test_config.h.cmake b/cmake/draco_test_config.h.cmake index 656cd001..9bb17456 100644 --- a/cmake/draco_test_config.h.cmake +++ b/cmake/draco_test_config.h.cmake @@ -23,5 +23,6 @@ #define DRACO_TEST_DATA_DIR "${DRACO_TEST_DATA_DIR}" #define DRACO_TEST_TEMP_DIR "${DRACO_TEST_TEMP_DIR}" +#define DRACO_TEST_ROOT_DIR "${DRACO_TEST_ROOT_DIR}" #endif // DRACO_TESTING_DRACO_TEST_CONFIG_H_ diff --git a/cmake/draco_tests.cmake b/cmake/draco_tests.cmake index 2d7f05e8..1d905a96 100644 --- a/cmake/draco_tests.cmake +++ b/cmake/draco_tests.cmake @@ -24,80 +24,84 @@ set(draco_factory_test_sources "${draco_src_root}/io/file_reader_factory_test.cc" "${draco_src_root}/io/file_writer_factory_test.cc") +list( + APPEND draco_test_common_sources + "${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/status.cc") + 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/math_utils_test.cc" + "${draco_src_root}/core/quantization_utils_test.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/corner_table_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/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") + 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/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) @@ -110,6 +114,14 @@ macro(draco_setup_test_targets) list(APPEND draco_test_defines GTEST_HAS_PTHREAD=0) + draco_add_library( + TEST + NAME draco_test_common + TYPE STATIC + SOURCES ${draco_test_common_sources} + DEFINES ${draco_defines} ${draco_test_defines} + INCLUDES ${draco_test_include_paths}) + draco_add_library( TEST NAME draco_gtest @@ -128,6 +140,7 @@ macro(draco_setup_test_targets) set(DRACO_TEST_DATA_DIR "${draco_root}/testdata") set(DRACO_TEST_TEMP_DIR "${draco_build}/draco_test_temp") + set(DRACO_TEST_ROOT_DIR "${draco_root}") file(MAKE_DIRECTORY "${DRACO_TEST_TEMP_DIR}") # Sets DRACO_TEST_DATA_DIR and DRACO_TEST_TEMP_DIR. @@ -136,17 +149,23 @@ macro(draco_setup_test_targets) # Create the test targets. draco_add_executable( + TEST 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) + LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main + draco_test_common) draco_add_executable( + TEST 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) + LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main + draco_test_common) + + endif() endmacro() diff --git a/cmake/draco_variables.cmake b/cmake/draco_variables.cmake index d8f00f5b..6d1b6a99 100644 --- a/cmake/draco_variables.cmake +++ b/cmake/draco_variables.cmake @@ -55,16 +55,15 @@ 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}") + 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/javascript/animation/draco_animation_decoder.js b/javascript/animation/draco_animation_decoder.js deleted file mode 100644 index 59856031..00000000 --- a/javascript/animation/draco_animation_decoder.js +++ /dev/null @@ -1,44 +0,0 @@ - -var DracoAnimationDecoderModule = (function() { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(DracoAnimationDecoderModule) { - DracoAnimationDecoderModule = DracoAnimationDecoderModule || {}; - -var Module=typeof DracoAnimationDecoderModule!=="undefined"?DracoAnimationDecoderModule:{};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]<=3)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var 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};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){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(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_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=function 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=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function 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=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){return func}function addFunctionWasm(func,sig){var table=wasmTable;var ret=table.length;try{table.grow(1)}catch(err){if(!err instanceof RangeError){throw err}throw"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."}try{table.set(ret,func)}catch(err){if(!err instanceof TypeError){throw err}assert(typeof sig!=="undefined","Missing signature argument to addFunction");var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}return ret}function removeFunctionWasm(index){}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];var WebAssembly={Memory:function(opts){return{buffer:new ArrayBuffer(opts["initial"]*65536),grow:function(amount){var ret=__growWasmMemory(amount);return ret}}},Table:function(opts){var ret=new Array(opts["initial"]);ret.grow=function(by){if(ret.length>=299+0){abort("Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.")}ret.push(null)};ret.set=function(i,func){ret[i]=func};ret.get=function(i){return ret[i]};return ret},Module:function(binary){return{}},Instance:function(module,info){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(i>2];a:{if(b){p[a>>2]=b;Gg(a+4|0,f|4);break a}p[a>>2]=0;p[a+4>>2]=0;p[a+8>>2]=0;p[a+12>>2]=0}if(n[f+15|0]<=-1){rh(p[f+4>>2])}S=f+16|0}function fa(a){p[a>>2]=0;p[a+4>>2]=0;p[a+8>>2]=0;return a}function ga(a,b,c){var d=0,e=0,g=0,h=0,i=0,j=0,k=0;a:{h=c-b|0;g=h>>2;d=p[a+8>>2];e=p[a>>2];b:{if(g>>>0<=d-e>>2>>>0){d=p[a+4>>2]-e|0;h=d>>2;d=g>>>0>h>>>0?b+d|0:c;i=d-b|0;if(i){vh(e,b,i)}if(g>>>0>h>>>0){b=c-d|0;if((b|0)<1){break b}a=a+4|0;th(p[a>>2],d,b);p[a>>2]=b+p[a>>2];return}p[a+4>>2]=e+(i>>2<<2);return}if(e){p[a+4>>2]=e;rh(e);p[a+8>>2]=0;p[a>>2]=0;p[a+4>>2]=0;d=0}if(g>>>0>=1073741824){break a}c=d>>1;c=d>>2>>>0<536870911?c>>>0>>0?g:c:1073741823;if(c>>>0>=1073741824){break a}e=c<<2;c=Bg(e);p[a>>2]=c;g=a+4|0;p[g>>2]=c;p[a+8>>2]=c+e;if((h|0)<1){break b}j=g,k=th(c,b,h)+h|0,p[j>>2]=k}return}Pg();E()}function ha(a,b){var c=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;l=p[a+8>>2];m=a+4|0;c=p[m>>2];if(l-c>>2>>>0>=b>>>0){a=b<<2;s=m,t=uh(c,0,a)+a|0,p[s>>2]=t;return}a:{m=p[a>>2];o=c-m|0;c=o>>2;n=c+b|0;if(n>>>0<1073741824){r=c<<2;l=l-m|0;c=l>>1;l=l>>2>>>0<536870911?c>>>0>>0?n:c:1073741823;c=0;b:{if(!l){break b}if(l>>>0>=1073741824){break a}q=Bg(l<<2);c=q}uh(r+c|0,0,b<<2);b=c+(n<<2)|0;n=c+(l<<2)|0;if((o|0)>=1){th(q,m,o)}p[a>>2]=c;p[a+8>>2]=n;p[a+4>>2]=b;if(m){rh(m)}return}Pg();E()}sa(1128);E()}function ia(a){a=a|0;var b=0,u=0,v=0,w=0,x=0;p[a>>2]=11108;b=p[a+20>>2];if(b){p[a+24>>2]=b;rh(b)}v=p[a+8>>2];if(v){b=v;x=a+12|0;u=p[x>>2];w=b;a:{if((b|0)==(u|0)){break a}while(1){u=u+ -4|0;b=p[u>>2];p[u>>2]=0;if(b){m[p[p[b>>2]+4>>2]](b)}if((u|0)!=(v|0)){continue}break}w=p[a+8>>2]}b=w;p[x>>2]=v;rh(b)}return a|0}function ja(a,y,z){var A=0,B=0,C=0;A=S-48|0;S=A;C=A+24|0;B=C+4|0;p[B>>2]=0;p[B+4>>2]=0;p[C>>2]=B;B=A+40|0;p[B>>2]=0;p[B+4>>2]=0;p[A+36>>2]=B;ea(A+8|0,a,A+24|0,y,z);p[a+44>>2]=p[A+8>>2];z=a+48|0;y=A+8|4;if((z|0)!=(y|0)){Ig(z,sg(y),pg(y))}a=a+44|0;if(n[A+23|0]<=-1){rh(p[A+12>>2])}ka(A+36|0,p[A+40>>2]);la(A+24|0,p[A+28>>2]);S=A+48|0;return a}function ka(a,y){if(y){ka(a,p[y>>2]);ka(a,p[y+4>>2]);la(y+20|0,p[y+24>>2]);rh(y)}}function la(a,y){if(y){la(a,p[y>>2]);la(a,p[y+4>>2]);if(n[y+39|0]<=-1){rh(p[y+28>>2])}if(n[y+27|0]<=-1){rh(p[y+16>>2])}rh(y)}}function ma(a,y){var z=0,D=0,E=0,F=0,G=0,H=0,I=0;D=S-16|0;S=D;a:{if(!y){break a}E=p[a+80>>2];F=Bf(a,0);b:{z=p[y>>2];a=p[y+4>>2]-z>>2;if(E>>>0>a>>>0){ha(y,E-a|0);p[D+12>>2]=-1082130432;break b}if(E>>>0>>0){p[y+4>>2]=z+(E<<2)}p[D+12>>2]=-1082130432;if(E){break b}z=1;break a}a=0;G=F+68|0;H=F+24|0;while(1){z=a;I=F;if(!q[F+84|0]){z=p[p[G>>2]+(a<<2)>>2]}if(!na(I,z,n[H|0],D+12|0)){z=0;break a}p[p[y>>2]+(a<<2)>>2]=p[D+12>>2];z=1;a=a+1|0;if((E|0)!=(a|0)){continue}break}}S=D+16|0;return z}function na(a,y,J,K){var L=0,M=0,N=w(0),O=0,P=0;a:{b:{if(!K){break b}L=p[a+28>>2]+ -1|0;if(L>>>0>10){break b}c:{switch(L-1|0){default:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(n[y|0]);t[(M<<2)+K>>2]=O?w(N/w(127)):N;y=y+1|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 0:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(q[y|0]);t[(M<<2)+K>>2]=O?w(N/w(255)):N;y=y+1|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 1:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(o[y>>1]);t[(M<<2)+K>>2]=O?w(N/w(32767)):N;y=y+2|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 2:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(r[y>>1]);t[(M<<2)+K>>2]=O?w(N/w(65535)):N;y=y+2|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 3:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(p[y>>2]);t[(M<<2)+K>>2]=O?w(N*w(4.656612873077393e-10)):N;y=y+4|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 4:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(s[y>>2]);t[(M<<2)+K>>2]=O?w(N*w(2.3283064365386963e-10)):N;y=y+4|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 5:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(+s[y>>2]+4294967296*+p[y+4>>2]);t[(M<<2)+K>>2]=O?w(N*w(1.0842021724855044e-19)):N;y=y+8|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 6:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;O=q[a+32|0];while(1){N=w(+s[y>>2]+4294967296*+s[y+4>>2]);t[(M<<2)+K>>2]=O?w(N*w(5.421010862427522e-20)):N;y=y+8|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 7:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;while(1){p[(M<<2)+K>>2]=p[y>>2];y=y+4|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 8:P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;while(1){t[(M<<2)+K>>2]=u[y>>3];y=y+8|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}break a;case 9:break c}}P=1;L=n[a+24|0];if(((L|0)>(J|0)?J:L)<<24>>24>=1){L=p[p[a>>2]>>2];y=p[a+48>>2]+Sh(p[a+40>>2],p[a+44>>2],y,0)|0;y=L+y|0;while(1){t[(M<<2)+K>>2]=q[y|0]?w(1):w(0);y=y+1|0;M=M+1|0;L=n[a+24|0];if((M|0)<((L|0)>(J|0)?J:L)<<24>>24){continue}break}}if((L|0)>=(J|0)){break b}uh((L<<2)+K|0,0,J-L<<2)}return P}uh((L<<2)+K|0,0,J-L<<2);return 1}function oa(a,y,J){var K=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;K=S-16|0;S=K;V=p[a+80>>2];a:{R=Bf(a,y);b:{if(!R){a=0;break b}Q=n[R+24|0];p[K+8>>2]=0;p[K>>2]=0;p[K+4>>2]=0;if(Q){if((Q|0)<=-1){break a}y=Q<<2;a=Bg(y);p[K>>2]=a;p[K+4>>2]=a;p[K+8>>2]=a+y;y=Q;while(1){p[a>>2]=-1082130432;a=a+4|0;y=y+ -1|0;if(y){continue}break}p[K+4>>2]=a}a=v(Q,V);T=p[J>>2];y=p[J+4>>2]-T>>2;c:{if(a>>>0>y>>>0){ha(J,a-y|0);break c}if(a>>>0>=y>>>0){break c}p[J+4>>2]=T+(a<<2)}d:{if(!V){a=1;break d}y=0;W=R+68|0;X=R+24|0;Y=(Q|0)<1;while(1){a=U;T=R;if(!q[R+84|0]){a=p[p[W>>2]+(U<<2)>>2]}if(!na(T,a,n[X|0],p[K>>2])){a=0;break d}if(!Y){T=p[J>>2];a=0;Z=p[K>>2];while(1){p[T+(y<<2)>>2]=p[(a<<2)+Z>>2];y=y+1|0;a=a+1|0;if((Q|0)!=(a|0)){continue}break}}a=1;U=U+1|0;if((U|0)!=(V|0)){continue}break}}y=p[K>>2];if(!y){break b}p[K+4>>2]=y;rh(y)}S=K+16|0;return a}Pg();E()}function pa(a){a=a|0;var y=0,J=0,S=0,_=0,$=0;p[a>>2]=11108;y=p[a+20>>2];if(y){p[a+24>>2]=y;rh(y)}S=p[a+8>>2];if(S){y=S;$=a+12|0;J=p[$>>2];_=y;a:{if((y|0)==(J|0)){break a}while(1){J=J+ -4|0;y=p[J>>2];p[J>>2]=0;if(y){m[p[p[y>>2]+4>>2]](y)}if((J|0)!=(S|0)){continue}break}_=p[a+8>>2]}y=_;p[$>>2]=S;rh(y)}rh(a)}function qa(a){a=a|0;return 0}function ra(a){a=a|0;return 1}function sa(a){var aa=0;aa=H(8)|0;p[aa>>2]=12524;p[aa>>2]=12568;Cg(aa+4|0,a);p[aa>>2]=12616;I(aa|0,12648,1);E()}function ta(a){a=a|0;return p[a>>2]}function ua(a){a=a|0;return!p[a>>2]|0}function va(a){a=a|0;var ba=0;ba=a+4|0;if(n[a+15|0]<=-1){ba=p[ba>>2]}return ba|0}function wa(a){a=a|0;if(a){if(n[a+15|0]<=-1){rh(p[a+4>>2])}rh(a)}}function xa(){var a=0;a=Bg(84);p[a>>2]=11712;uh(a+4|0,0,80);p[a>>2]=1204;return a|0}function ya(ca){ca=ca|0;return p[ca+80>>2]}function za(ca){ca=ca|0;return(p[ca+12>>2]-p[ca+8>>2]>>2)+ -1|0}function Aa(ca){ca=ca|0;if(ca){m[p[p[ca>>2]+4>>2]](ca)}}function Ba(){return fa(Bg(12))|0}function Ca(ca,da){ca=ca|0;da=da|0;return w(t[p[ca>>2]+(da<<2)>>2])}function Da(ca){ca=ca|0;return p[ca+4>>2]-p[ca>>2]>>2}function Ea(ca){ca=ca|0;var da=0;if(ca){da=p[ca>>2];if(da){p[ca+4>>2]=da;rh(da)}rh(ca)}}function Fa(){return hf(Bg(40))|0}function Ga(ca,ea,fa){ca=ca|0;ea=ea|0;fa=fa|0;p[ca+16>>2]=0;p[ca+20>>2]=0;p[ca>>2]=ea;p[ca+8>>2]=fa;p[ca+12>>2]=0}function Ha(p){p=p|0;if(p){rh(p)}}function Ia(){var ca=0;ca=Bg(60);Ve(ca);p[ca+44>>2]=0;p[ca+48>>2]=0;p[ca>>2]=1032;p[ca+52>>2]=0;p[ca+56>>2]=0;return ca|0}function Ja(p,ea,fa){p=p|0;ea=ea|0;fa=fa|0;return ja(p,ea,fa)|0}function Ka(p,ea,fa){p=p|0;ea=ea|0;fa=fa|0;return ma(ea,fa)|0}function La(p,ea,fa,ga){p=p|0;ea=ea|0;fa=fa|0;ga=ga|0;return oa(ea,fa,ga)|0}function Ma(ea){ea=ea|0;var fa=0,ga=0,ha=0,ia=0,ja=0;if(ea){if(n[ea+59|0]<=-1){rh(p[ea+48>>2])}p[ea>>2]=11108;fa=p[ea+20>>2];if(fa){p[ea+24>>2]=fa;rh(fa)}ha=p[ea+8>>2];if(ha){fa=ha;ja=ea+12|0;ga=p[ja>>2];ia=fa;a:{if((fa|0)==(ga|0)){break a}while(1){ga=ga+ -4|0;fa=p[ga>>2];p[ga>>2]=0;if(fa){m[p[p[fa>>2]+4>>2]](fa)}if((ga|0)!=(ha|0)){continue}break}ia=p[ea+8>>2]}fa=ia;p[ja>>2]=ha;rh(fa)}rh(ea)}}function Na(){return 0}function Oa(){return-1}function Pa(){return-2}function Qa(){return-3}function Ra(){return-4}function Sa(){return-5}function Ta(ea){var ka=0,la=0;if(ea){ka=ea+88|0;la=p[ka>>2];p[ka>>2]=0;if(la){ka=p[la+8>>2];if(ka){p[la+12>>2]=ka;rh(ka)}rh(la)}la=p[ea+68>>2];if(la){p[ea+72>>2]=la;rh(la)}ka=ea- -64|0;la=p[ka>>2];p[ka>>2]=0;if(la){ka=p[la>>2];if(ka){p[la+4>>2]=ka;rh(ka)}rh(la)}rh(ea)}}function Ua(ea){ea=ea|0;var ma=0,na=0,oa=0,pa=0,qa=0;p[ea>>2]=11712;ma=p[ea+68>>2];if(ma){p[ea+72>>2]=ma;rh(ma)}ma=p[ea+56>>2];if(ma){p[ea+60>>2]=ma;rh(ma)}ma=p[ea+44>>2];if(ma){p[ea+48>>2]=ma;rh(ma)}ma=p[ea+32>>2];if(ma){p[ea+36>>2]=ma;rh(ma)}ma=p[ea+20>>2];if(ma){p[ea+24>>2]=ma;rh(ma)}oa=p[ea+8>>2];if(oa){ma=oa;qa=ea+12|0;na=p[qa>>2];pa=ma;a:{if((ma|0)==(na|0)){break a}while(1){na=na+ -4|0;ma=p[na>>2];p[na>>2]=0;if(ma){Ta(ma)}if((na|0)!=(oa|0)){continue}break}pa=p[ea+8>>2]}ma=pa;p[qa>>2]=oa;rh(ma)}ma=p[ea+4>>2];p[ea+4>>2]=0;if(ma){Va(ma)}return ea|0}function Va(ea){var ra=0,sa=0,ta=0,ua=0,va=0;if(ea){ta=p[ea+24>>2];if(ta){ra=ta;va=ea+28|0;sa=p[va>>2];ua=ra;a:{if((sa|0)==(ra|0)){break a}while(1){sa=sa+ -4|0;ra=p[sa>>2];p[sa>>2]=0;if(ra){Xa(ra+12|0,p[ra+16>>2]);Ya(ra,p[ra+4>>2]);rh(ra)}if((sa|0)!=(ta|0)){continue}break}ua=p[ea+24>>2]}ra=ua;p[va>>2]=ta;rh(ra)}Xa(ea+12|0,p[ea+16>>2]);Ya(ea,p[ea+4>>2]);rh(ea)}}function Wa(p){p=p|0;Ua(p);rh(p)}function Xa(ea,wa){var xa=0;if(wa){Xa(ea,p[wa>>2]);Xa(ea,p[wa+4>>2]);xa=wa+28|0;ea=p[xa>>2];p[xa>>2]=0;if(ea){Xa(ea+12|0,p[ea+16>>2]);Ya(ea,p[ea+4>>2]);rh(ea)}if(n[wa+27|0]<=-1){rh(p[wa+16>>2])}rh(wa)}}function Ya(ea,wa){if(wa){Ya(ea,p[wa>>2]);Ya(ea,p[wa+4>>2]);ea=p[wa+28>>2];if(ea){p[wa+32>>2]=ea;rh(ea)}if(n[wa+27|0]<=-1){rh(p[wa+16>>2])}rh(wa)}}function Za(ea,wa){ea=ea|0;wa=wa|0;var ya=0;wa=p[wa+88>>2];if(!(!wa|p[wa>>2]!=2)){ya=ea;ea=p[wa+8>>2];p[ya+4>>2]=q[ea|0]|q[ea+1|0]<<8|(q[ea+2|0]<<16|q[ea+3|0]<<24);ya=1}return ya|0}function _a(ea,wa){ea=ea|0;wa=wa|0;var za=0,Aa=0;p[wa>>2]=2;za=p[wa+8>>2];Aa=p[wa+12>>2]-za|0;if(Aa>>>0<=4294967291){wa=wa+8|0;gf(wa,Aa+4|0);za=p[wa>>2]}wa=za+Aa|0;ea=q[ea+4|0]|q[ea+5|0]<<8|(q[ea+6|0]<<16|q[ea+7|0]<<24);n[wa|0]=ea;n[wa+1|0]=ea>>>8;n[wa+2|0]=ea>>>16;n[wa+3|0]=ea>>>24}function $a(p){p=p|0;return p|0}function ab(p){p=p|0;rh(p)}function bb(p){p=p|0;return 2}function cb(ea,wa){ea=ea|0;wa=wa|0;var Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0;Da=p[wa+88>>2];if(!(!Da|p[Da>>2]!=1)){Ea=Da+8|0;Da=p[Ea>>2];Ba=Da;p[ea+4>>2]=q[Ba|0]|q[Ba+1|0]<<8|(q[Ba+2|0]<<16|q[Ba+3|0]<<24);Fa=ea+8|0;Ga=p[ea+8>>2];Ca=p[ea+12>>2]-Ga>>2;Ba=n[wa+24|0];a:{if(Ca>>>0>>0){ha(Fa,Ba-Ca|0);Da=p[Ea>>2];Ba=q[wa+24|0];break a}if(Ca>>>0<=Ba>>>0){break a}p[ea+12>>2]=Ga+(Ba<<2)}Ea=1;wa=Da;Ca=q[wa+4|0]|q[wa+5|0]<<8|(q[wa+6|0]<<16|q[wa+7|0]<<24);if(Ba<<24>>24>=1){Ga=Ba&255;Fa=p[Fa>>2];wa=0;Ba=4;while(1){p[Fa+(wa<<2)>>2]=Ca;Ba=Ba+4|0;Ca=Da+Ba|0;Ca=q[Ca|0]|q[Ca+1|0]<<8|(q[Ca+2|0]<<16|q[Ca+3|0]<<24);wa=wa+1|0;if(wa>>>0>>0){continue}break}}p[ea+20>>2]=Ca}return Ea|0}function db(ea,wa){ea=ea|0;wa=wa|0;var Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0;p[wa>>2]=1;Ka=wa+8|0;Ha=p[wa+8>>2];Ia=p[wa+12>>2]-Ha|0;if(Ia>>>0<=4294967291){gf(Ka,Ia+4|0);Ha=p[Ka>>2]}Ia=Ha+Ia|0;Ha=q[ea+4|0]|q[ea+5|0]<<8|(q[ea+6|0]<<16|q[ea+7|0]<<24);n[Ia|0]=Ha;n[Ia+1|0]=Ha>>>8;n[Ia+2|0]=Ha>>>16;n[Ia+3|0]=Ha>>>24;Ha=p[ea+8>>2];if((Ha|0)!=p[ea+12>>2]){Ma=wa+12|0;while(1){Ia=(La<<2)+Ha|0;Ha=p[wa+8>>2];Ja=p[Ma>>2]-Ha|0;if(Ja>>>0<=4294967291){gf(Ka,Ja+4|0);Ha=p[Ka>>2]}Ja=Ha+Ja|0;Ha=q[Ia|0]|q[Ia+1|0]<<8|(q[Ia+2|0]<<16|q[Ia+3|0]<<24);n[Ja|0]=Ha;n[Ja+1|0]=Ha>>>8;n[Ja+2|0]=Ha>>>16;n[Ja+3|0]=Ha>>>24;La=La+1|0;Ha=p[ea+8>>2];if(La>>>0>2]-Ha>>2>>>0){continue}break}}Ha=p[wa+12>>2];wa=p[wa+8>>2];Ha=Ha-wa|0;if(Ha>>>0<=4294967291){gf(Ka,Ha+4|0);wa=p[Ka>>2]}wa=wa+Ha|0;ea=q[ea+20|0]|q[ea+21|0]<<8|(q[ea+22|0]<<16|q[ea+23|0]<<24);n[wa|0]=ea;n[wa+1|0]=ea>>>8;n[wa+2|0]=ea>>>16;n[wa+3|0]=ea>>>24}function eb(ea,wa,Na,Oa,Pa){p[ea+4>>2]=wa;ga(ea+8|0,Na,(Oa<<2)+Na|0);t[ea+20>>2]=Pa}function fb(ea){ea=ea|0;var wa=0;p[ea>>2]=1384;wa=p[ea+8>>2];if(wa){p[ea+12>>2]=wa;rh(wa)}return ea|0}function gb(ea){ea=ea|0;var Na=0;p[ea>>2]=1384;Na=p[ea+8>>2];if(Na){p[ea+12>>2]=Na;rh(Na)}rh(ea)}function hb(ea,Oa){var Pa=0;Pa=Bg(40);p[Pa>>2]=-1;df(Pa+8|0);m[p[p[ea>>2]+16>>2]](ea,Pa);ea=p[Oa+88>>2];p[Oa+88>>2]=Pa;if(ea){Oa=p[ea+8>>2];if(Oa){p[ea+12>>2]=Oa;rh(Oa)}rh(ea)}return 1}function ib(ea,Oa){var Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0;Sa=p[ea+8>>2];Qa=p[ea+4>>2];if(Sa-Qa>>2>>>0>=Oa>>>0){while(1){p[Qa>>2]=p[458];Qa=Qa+4|0;Oa=Oa+ -1|0;if(Oa){continue}break}p[ea+4>>2]=Qa;return}a:{Ta=p[ea>>2];Ua=Qa-Ta|0;Va=Ua>>2;Qa=Va+Oa|0;if(Qa>>>0<1073741824){Sa=Sa-Ta|0;Ra=Sa>>1;Qa=Sa>>2>>>0<536870911?Ra>>>0>>0?Qa:Ra:1073741823;Ra=0;b:{if(!Qa){break b}if(Qa>>>0>=1073741824){break a}Ra=Bg(Qa<<2)}Sa=Ra+(Qa<<2)|0;Qa=Ra+(Va<<2)|0;while(1){p[Qa>>2]=p[458];Qa=Qa+4|0;Oa=Oa+ -1|0;if(Oa){continue}break}if((Ua|0)>=1){th(Ra,Ta,Ua)}p[ea>>2]=Ra;p[ea+8>>2]=Sa;p[ea+4>>2]=Qa;if(Ta){rh(Ta)}return}Pg();E()}sa(1460);E()}function jb(ea){p[ea+8>>2]=0;p[ea+12>>2]=0;p[ea>>2]=0;p[ea+40>>2]=0;p[ea+44>>2]=0;p[ea+28>>2]=9;n[ea+24|0]=1;p[ea+56>>2]=-1;p[ea+60>>2]=0;p[ea+16>>2]=0;p[ea+20>>2]=0;p[ea+48>>2]=0;p[ea+52>>2]=0;return ea}function kb(ea,Oa,Wa,Xa,Ya,Za,_a){p[ea>>2]=0;p[ea+56>>2]=Oa;p[ea+48>>2]=0;p[ea+52>>2]=0;p[ea+40>>2]=Za;p[ea+44>>2]=_a;n[ea+32|0]=Ya;p[ea+28>>2]=Xa;n[ea+24|0]=Wa}function lb(ea,Oa){var Wa=0,Xa=0,Ya=0;Xa=p[ea>>2];a:{if(!Xa){break a}Wa=p[Oa>>2];if(!Wa){break a}Ya=Xa;Xa=p[Wa>>2];ef(Ya,Xa,p[Wa+4>>2]-Xa|0,0);n[ea+24|0]=q[Oa+24|0];p[ea+28>>2]=p[Oa+28>>2];n[ea+32|0]=q[Oa+32|0];Wa=p[Oa+44>>2];p[ea+40>>2]=p[Oa+40>>2];p[ea+44>>2]=Wa;Wa=p[Oa+52>>2];p[ea+48>>2]=p[Oa+48>>2];p[ea+52>>2]=Wa;p[ea+56>>2]=p[Oa+56>>2];Wa=p[Oa+12>>2];p[ea+8>>2]=p[Oa+8>>2];p[ea+12>>2]=Wa;Wa=p[Oa+20>>2];p[ea+16>>2]=p[Oa+16>>2];p[ea+20>>2]=Wa;p[ea+60>>2]=p[Oa+60>>2];Ya=1}return Ya}function mb(ea,Oa,Za,_a){var $a=0;p[ea>>2]=Oa;$a=p[Oa+20>>2];p[ea+8>>2]=p[Oa+16>>2];p[ea+12>>2]=$a;$a=p[Oa+24>>2];Oa=p[Oa+28>>2];p[ea+48>>2]=0;p[ea+52>>2]=0;p[ea+40>>2]=Za;p[ea+44>>2]=_a;p[ea+16>>2]=$a;p[ea+20>>2]=Oa}function nb(ea,Oa){var Za=0;Za=p[Oa+4>>2];p[ea>>2]=p[Oa>>2];p[ea+4>>2]=Za;Za=p[Oa+60>>2];p[ea+56>>2]=p[Oa+56>>2];p[ea+60>>2]=Za;Za=p[Oa+52>>2];p[ea+48>>2]=p[Oa+48>>2];p[ea+52>>2]=Za;Za=p[Oa+44>>2];p[ea+40>>2]=p[Oa+40>>2];p[ea+44>>2]=Za;Za=p[Oa+36>>2];p[ea+32>>2]=p[Oa+32>>2];p[ea+36>>2]=Za;Za=p[Oa+28>>2];p[ea+24>>2]=p[Oa+24>>2];p[ea+28>>2]=Za;Za=p[Oa+20>>2];p[ea+16>>2]=p[Oa+16>>2];p[ea+20>>2]=Za;Za=p[Oa+12>>2];p[ea+8>>2]=p[Oa+8>>2];p[ea+12>>2]=Za;p[ea+88>>2]=0;p[ea+64>>2]=0;p[ea+68>>2]=0;p[ea+72>>2]=0;p[ea+76>>2]=0;n[ea+77|0]=0;n[ea+78|0]=0;n[ea+79|0]=0;n[ea+80|0]=0;n[ea+81|0]=0;n[ea+82|0]=0;n[ea+83|0]=0;n[ea+84|0]=0}function ob(ea,Oa){var _a=0,ab=0;a:{if(p[ea+64>>2]){break a}ab=Bg(32);df(ab);_a=p[ea+64>>2];p[ea+64>>2]=ab;if(!_a){break a}ab=p[_a>>2];if(ab){p[_a+4>>2]=ab;rh(ab)}rh(_a)}_a=kf(p[ea+28>>2]);_a=v(_a,n[ea+24|0]);ab=_a;_a=_a>>31;if(ef(p[ea+64>>2],0,Sh(ab,_a,Oa,0),U)){mb(ea,p[ea+64>>2],ab,_a);p[ea+80>>2]=Oa;ea=1}else{ea=0}return ea}function pb(ea,Oa){var bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0;if(!p[ea- -64>>2]){bb=Bg(32);df(bb);db=p[ea+64>>2];p[ea+64>>2]=bb;cb=ea;if(db){bb=p[db>>2];if(bb){p[db+4>>2]=bb;rh(bb)}rh(db);bb=p[ea+64>>2]}mb(cb,bb,0,0)}a:{b:{if(!lb(ea,Oa)){break b}n[ea+84|0]=q[Oa+84|0];p[ea+80>>2]=p[Oa+80>>2];if((ea|0)!=(Oa|0)){qb(ea+68|0,p[Oa+68>>2],p[Oa+72>>2])}bb=p[Oa+88>>2];if(bb){Oa=Bg(40);cb=p[bb>>2];p[Oa+16>>2]=0;p[Oa+8>>2]=0;p[Oa+12>>2]=0;p[Oa>>2]=cb;cb=p[bb+12>>2]-p[bb+8>>2]|0;c:{if(!cb){break c}if((cb|0)<=-1){break a}db=Bg(cb);p[Oa+8>>2]=db;eb=Oa+12|0;p[eb>>2]=db;p[Oa+16>>2]=cb+db;fb=p[bb+8>>2];cb=p[bb+12>>2]-fb|0;if((cb|0)<1){break c}gb=eb,hb=th(db,fb,cb)+cb|0,p[gb>>2]=hb}cb=p[bb+36>>2];p[Oa+32>>2]=p[bb+32>>2];p[Oa+36>>2]=cb;cb=p[bb+28>>2];p[Oa+24>>2]=p[bb+24>>2];p[Oa+28>>2]=cb;bb=p[ea+88>>2];p[ea+88>>2]=Oa;if(!bb){break b}ea=p[bb+8>>2];if(ea){p[bb+12>>2]=ea;rh(ea)}rh(bb);return}Oa=ea+88|0;ea=p[Oa>>2];p[Oa>>2]=0;if(!ea){break b}Oa=p[ea+8>>2];if(Oa){p[ea+12>>2]=Oa;rh(Oa)}rh(ea)}return}Pg();E()}function qb(ea,Oa,ib){var jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0;a:{jb=ib-Oa|0;lb=jb>>2;mb=p[ea+8>>2];kb=p[ea>>2];b:{if(lb>>>0<=mb-kb>>2>>>0){nb=p[ea+4>>2];jb=nb-kb|0;mb=jb>>2;jb=lb>>>0>mb>>>0?Oa+jb|0:ib;if((jb|0)!=(Oa|0)){while(1){p[kb>>2]=p[Oa>>2];kb=kb+4|0;Oa=Oa+4|0;if((jb|0)!=(Oa|0)){continue}break}}if(lb>>>0>mb>>>0){Oa=ib-jb|0;if((Oa|0)<1){break b}th(nb,jb,Oa);ea=ea+4|0;p[ea>>2]=Oa+p[ea>>2];return}p[ea+4>>2]=kb;return}if(kb){p[ea+4>>2]=kb;rh(kb);p[ea+8>>2]=0;p[ea>>2]=0;p[ea+4>>2]=0;mb=0}if(lb>>>0>=1073741824){break a}ib=mb>>1;ib=mb>>2>>>0<536870911?ib>>>0>>0?lb:ib:1073741823;if(ib>>>0>=1073741824){break a}kb=ib<<2;ib=Bg(kb);p[ea>>2]=ib;lb=ea+4|0;p[lb>>2]=ib;p[ea+8>>2]=ib+kb;if((jb|0)<1){break b}ob=lb,pb=th(ib,Oa,jb)+jb|0,p[ob>>2]=pb}return}Pg();E()}function rb(ea){p[ea>>2]=1536;p[ea+4>>2]=0;p[ea+8>>2]=0;p[ea+12>>2]=0;p[ea+16>>2]=0;p[ea+20>>2]=0;p[ea+24>>2]=0;p[ea+28>>2]=0;p[ea+32>>2]=0}function sb(ea,Oa,ib){ea=ea|0;Oa=Oa|0;ib=ib|0;p[ea+32>>2]=ib;p[ea+28>>2]=Oa;return 1}function tb(ea,Oa){ea=ea|0;Oa=Oa|0;var ib=0,qb=0,rb=0,sb=0,tb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0;tb=S-96|0;S=tb;a:{b:{if(q[p[ea+28>>2]+36|0]<=1){yb=p[Oa+12>>2];ib=p[Oa+20>>2];sb=p[Oa+16>>2];qb=sb+4|0;if(qb>>>0<4){ib=ib+1|0}xb=qb;qb=ib;if((yb|0)<(ib|0)?1:(yb|0)<=(ib|0)?s[Oa+8>>2]>=xb>>>0?0:1:0){break a}ib=sb+p[Oa>>2]|0;yb=q[ib|0]|q[ib+1|0]<<8|(q[ib+2|0]<<16|q[ib+3|0]<<24);p[tb+92>>2]=yb;p[Oa+16>>2]=xb;p[Oa+20>>2]=qb;break b}if(!ub(1,tb+92|0,Oa)){break a}yb=p[tb+92>>2]}if(!yb){break a}qb=p[ea+4>>2];ib=p[ea+8>>2]-qb>>2;c:{if(yb>>>0>ib>>>0){vb(ea+4|0,yb-ib|0);break c}if(yb>>>0>=ib>>>0){break c}p[ea+8>>2]=qb+(yb<<2)}Fb=ea+16|0;Gb=p[ea+32>>2];Hb=ea+20|0;while(1){Ab=p[Oa+8>>2];xb=p[Oa+16>>2];sb=p[Oa+12>>2];qb=sb;ib=p[Oa+20>>2];if((qb|0)<(ib|0)?1:(qb|0)<=(ib|0)?Ab>>>0>xb>>>0?0:1:0){rb=0;break a}Cb=p[Oa>>2];Ib=q[Cb+xb|0];qb=ib;zb=xb+1|0;if(zb>>>0<1){qb=qb+1|0}rb=Oa;p[Oa+16>>2]=zb;p[Oa+20>>2]=qb;if((sb|0)<(qb|0)?1:(sb|0)<=(qb|0)?Ab>>>0>zb>>>0?0:1:0){rb=0;break a}zb=q[zb+Cb|0];qb=ib;Bb=xb+2|0;if(Bb>>>0<2){qb=qb+1|0}p[Oa+16>>2]=Bb;p[rb+20>>2]=qb;if((sb|0)<(qb|0)?1:(sb|0)<=(qb|0)?Ab>>>0>Bb>>>0?0:1:0){rb=0;break a}Bb=q[Bb+Cb|0];qb=ib;Db=xb+3|0;if(Db>>>0<3){qb=qb+1|0}p[Oa+16>>2]=Db;p[rb+20>>2]=qb;if((sb|0)<(qb|0)?1:(sb|0)<=(qb|0)?Ab>>>0>Db>>>0?0:1:0){rb=0;break a}sb=q[Db+Cb|0];qb=ib;ib=xb+4|0;if(ib>>>0<4){qb=qb+1|0}p[Oa+16>>2]=ib;p[rb+20>>2]=qb;if(Ib>>>0>4){rb=0;break a}if((zb+ -1&255)>>>0>10){rb=0;break a}xb=jb(tb+24|0);ib=v(kf(zb),Bb);kb(xb,Ib,Bb<<24>>24,zb,(sb|0)!=0,ib,ib>>31);d:{ib=r[p[ea+28>>2]+36>>1];e:{if((ib<<24|ib<<8&16711680)>>>16>>>0<=258){rb=p[Oa+12>>2];qb=p[Oa+20>>2];sb=p[Oa+16>>2];ib=sb+2|0;if(ib>>>0<2){qb=qb+1|0}Ab=ib;ib=qb;if((rb|0)<(ib|0)?1:(rb|0)<=(ib|0)?s[Oa+8>>2]>=Ab>>>0?0:1:0){break d}qb=sb+p[Oa>>2]|0;qb=q[qb|0]|q[qb+1|0]<<8;p[Oa+16>>2]=Ab;p[Oa+20>>2]=ib;p[tb+20>>2]=qb;break e}ub(1,tb+20|0,Oa);qb=p[tb+20>>2]}p[tb+84>>2]=qb;ib=Bg(96);nb(ib,xb);p[tb+16>>2]=ib;ib=Cf(Gb,tb+16|0);rb=p[tb+16>>2];p[tb+16>>2]=0;if(rb){Ta(rb)}sb=ib<<2;p[p[sb+p[Gb+8>>2]>>2]+60>>2]=qb;p[p[ea+4>>2]+(Eb<<2)>>2]=ib;qb=p[ea+16>>2];rb=p[Hb>>2]-qb>>2;f:{if((ib|0)<(rb|0)){break f}p[tb+12>>2]=-1;ib=ib+1|0;if(ib>>>0>rb>>>0){wb(Fb,ib-rb|0,tb+12|0);qb=p[Fb>>2];break f}if(ib>>>0>=rb>>>0){break f}p[Hb>>2]=(ib<<2)+qb}p[qb+sb>>2]=Eb;rb=1;Eb=Eb+1|0;if((Eb|0)!=(yb|0)){continue}break a}break}rb=0}S=tb+96|0;return rb|0}function ub(ea,Oa,vb){var wb=0,Jb=0,Kb=0,Lb=0;a:{if(ea>>>0>5){break a}Kb=p[vb+16>>2];wb=p[vb+12>>2];Jb=p[vb+20>>2];if((wb|0)<(Jb|0)?1:(wb|0)<=(Jb|0)?s[vb+8>>2]>Kb>>>0?0:1:0){break a}wb=q[Kb+p[vb>>2]|0];Kb=Kb+1|0;if(Kb>>>0<1){Jb=Jb+1|0}p[vb+16>>2]=Kb;p[vb+20>>2]=Jb;Jb=Oa;if(wb&128){if(!ub(ea+1|0,Oa,vb)){break a}ea=p[Oa>>2]<<7;p[Oa>>2]=ea;wb=ea|wb&127}p[Jb>>2]=wb;Lb=1}return Lb}function vb(ea,Oa){var ub=0,vb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0;vb=p[ea+8>>2];Mb=ea+4|0;ub=p[Mb>>2];if(vb-ub>>2>>>0>=Oa>>>0){ea=Oa<<2;Rb=Mb,Sb=uh(ub,0,ea)+ea|0,p[Rb>>2]=Sb;return}a:{Mb=p[ea>>2];Ob=ub-Mb|0;ub=Ob>>2;Nb=ub+Oa|0;if(Nb>>>0<1073741824){Qb=ub<<2;vb=vb-Mb|0;ub=vb>>1;vb=vb>>2>>>0<536870911?ub>>>0>>0?Nb:ub:1073741823;ub=0;b:{if(!vb){break b}if(vb>>>0>=1073741824){break a}Pb=Bg(vb<<2);ub=Pb}uh(Qb+ub|0,0,Oa<<2);Oa=ub+(Nb<<2)|0;Nb=ub+(vb<<2)|0;if((Ob|0)>=1){th(Pb,Mb,Ob)}p[ea>>2]=ub;p[ea+8>>2]=Nb;p[ea+4>>2]=Oa;if(Mb){rh(Mb)}return}Pg();E()}sa(1672);E()}function wb(ea,Oa,Tb){var Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0;Wb=p[ea+8>>2];Ub=p[ea+4>>2];if(Wb-Ub>>2>>>0>=Oa>>>0){while(1){p[Ub>>2]=p[Tb>>2];Ub=Ub+4|0;Oa=Oa+ -1|0;if(Oa){continue}break}p[ea+4>>2]=Ub;return}a:{Xb=p[ea>>2];Yb=Ub-Xb|0;Zb=Yb>>2;Ub=Zb+Oa|0;if(Ub>>>0<1073741824){Wb=Wb-Xb|0;Vb=Wb>>1;Ub=Wb>>2>>>0<536870911?Vb>>>0>>0?Ub:Vb:1073741823;Vb=0;b:{if(!Ub){break b}if(Ub>>>0>=1073741824){break a}Vb=Bg(Ub<<2)}Wb=Vb+(Ub<<2)|0;Ub=Vb+(Zb<<2)|0;while(1){p[Ub>>2]=p[Tb>>2];Ub=Ub+4|0;Oa=Oa+ -1|0;if(Oa){continue}break}if((Yb|0)>=1){th(Vb,Xb,Yb)}p[ea>>2]=Vb;p[ea+8>>2]=Wb;p[ea+4>>2]=Ub;if(Xb){rh(Xb)}return}Pg();E()}sa(1672);E()}function xb(ea){ea=ea|0;var Oa=0;p[ea>>2]=1536;Oa=p[ea+16>>2];if(Oa){p[ea+20>>2]=Oa;rh(Oa)}Oa=p[ea+4>>2];if(Oa){p[ea+8>>2]=Oa;rh(Oa)}return ea|0}function yb(p){p=p|0;E()}function zb(ea,Tb){ea=ea|0;Tb=Tb|0;var _b=0;a:{if(!m[p[p[ea>>2]+36>>2]](ea,Tb)){break a}if(!m[p[p[ea>>2]+40>>2]](ea,Tb)){break a}_b=m[p[p[ea>>2]+44>>2]](ea)|0}return _b|0}function Ab(ea,Tb){ea=ea|0;Tb=Tb|0;return p[p[ea+4>>2]+(Tb<<2)>>2]}function Bb(ea){ea=ea|0;return p[ea+8>>2]-p[ea+4>>2]>>2}function Cb(ea){ea=ea|0;return p[ea+28>>2]}function Db(p,ea){p=p|0;ea=ea|0;return 0}function Eb(p,ea){p=p|0;ea=ea|0;return 1}function Fb(ea,Tb){var $b=0,ac=0,bc=0,cc=0,dc=0,ec=0;a:{ac=p[ea+8>>2];bc=ea+4|0;$b=p[bc>>2];b:{if(ac-$b>>>0>=Tb>>>0){while(1){n[$b|0]=0;$b=p[bc>>2]+1|0;p[bc>>2]=$b;Tb=Tb+ -1|0;if(Tb){continue}break b}}cc=p[ea>>2];dc=$b-cc|0;$b=dc+Tb|0;if(($b|0)<=-1){break a}bc=0;ac=ac-cc|0;ec=ac<<1;ac=ac>>>0<1073741823?ec>>>0<$b>>>0?$b:ec:2147483647;if(ac){bc=Bg(ac)}$b=bc+dc|0;uh($b,0,Tb);ac=ac+bc|0;while(1){$b=$b+1|0;Tb=Tb+ -1|0;if(Tb){continue}break}if((dc|0)>=1){th(bc,cc,dc)}p[ea>>2]=bc;p[ea+8>>2]=ac;p[ea+4>>2]=$b;if(!cc){break b}rh(cc)}return}Pg();E()}function Gb(ea,Tb){var fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0;ea=p[ea+4>>2];if(ea){gc=q[Tb+11|0];hc=gc<<24>>24<0;gc=hc?p[Tb+4>>2]:gc;kc=hc?p[Tb>>2]:Tb;while(1){Tb=ea+16|0;fc=q[ea+27|0];hc=fc<<24>>24<0;ic=hc?p[ea+20>>2]:fc;lc=ic>>>0>>0;a:{b:{c:{d:{e:{f:{fc=lc?ic:gc;if(fc){jc=hc?p[Tb>>2]:Tb;mc=dg(kc,jc,fc);if(mc){break f}}if(gc>>>0>>0){break a}if(!fc){break d}jc=hc?p[Tb>>2]:Tb;break e}if((mc|0)<=-1){break a}}Tb=dg(jc,kc,fc);if(Tb){break c}}if(lc){break b}return 1}if((Tb|0)<=-1){break b}return 1}ea=ea+4|0}ea=p[ea>>2];if(ea){continue}break}}return 0}function Hb(ea){p[ea+12>>2]=-1;p[ea+16>>2]=0;p[ea+4>>2]=0;p[ea+8>>2]=0;p[ea>>2]=1748}function Ib(ea,Tb,nc){ea=ea|0;Tb=Tb|0;nc=nc|0;p[ea+4>>2]=Tb;Tb=p[p[p[Tb+4>>2]+8>>2]+(nc<<2)>>2];p[ea+12>>2]=nc;p[ea+8>>2]=Tb;return 1}function Jb(ea,Tb){ea=ea|0;Tb=Tb|0;p[ea+12>>2]=-1;p[ea+8>>2]=Tb;return 1}function Kb(ea,Tb,nc){ea=ea|0;Tb=Tb|0;nc=nc|0;var oc=0,pc=0;oc=p[ea+8>>2];a:{if(n[oc+24|0]<1){break a}if(!ob(oc,p[Tb+4>>2]-p[Tb>>2]>>2)){break a}pc=m[p[p[ea>>2]+32>>2]](ea,Tb,nc)|0}return pc|0}function Lb(p,ea,Tb){p=p|0;ea=ea|0;Tb=Tb|0;return 1}function Mb(ea){var Tb=0,nc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0;a:{qc=p[ea+8>>2];if(q[qc+84|0]){break a}Tb=p[ea+16>>2];if(!Tb|!q[Tb+84|0]){break a}nc=p[qc+72>>2];rc=p[qc+68>>2];n[Tb+84|0]=0;nc=nc-rc>>2;sc=p[Tb+68>>2];rc=p[Tb+72>>2]-sc>>2;b:{if(nc>>>0>rc>>>0){ib(Tb+68|0,nc-rc|0);qc=p[ea+8>>2];break b}if(nc>>>0>=rc>>>0){break b}p[Tb+72>>2]=sc+(nc<<2)}Tb=0;rc=q[qc+84|0];tc=qc+72|0;uc=ea+16|0;vc=qc+68|0;while(1){if(Tb>>>0>=(rc?0:p[tc>>2]-p[qc+68>>2]>>2)>>>0){break a}nc=Tb;sc=p[p[uc>>2]+68>>2]+(Tb<<2)|0;if(!rc){nc=p[p[vc>>2]+(Tb<<2)>>2]}p[sc>>2]=nc;Tb=Tb+1|0;continue}}return p[ea+16>>2]}function Nb(ea,wc){ea=ea|0;wc=wc|0;var xc=0,yc=0,zc=0;if((m[p[p[wc>>2]+20>>2]](wc)|0)>=1){while(1){xc=Af(p[p[ea+4>>2]+4>>2],m[p[p[wc>>2]+24>>2]](wc,yc)|0);if((xc|0)==-1){return 0}a:{zc=p[ea+4>>2];if(q[zc+36|0]<=1){if(m[p[p[wc>>2]+28>>2]](wc,p[p[p[zc+4>>2]+8>>2]+(xc<<2)>>2])){break a}return 0}xc=$e(zc,xc);if(!xc){return 0}if(m[p[p[wc>>2]+28>>2]](wc,xc)){break a}return 0}yc=yc+1|0;if((yc|0)<(m[p[p[wc>>2]+20>>2]](wc)|0)){continue}break}}return 1}function Ob(ea,wc,Ac){ea=ea|0;wc=wc|0;Ac=Ac|0;var Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0;Bc=p[wc+4>>2];Cc=p[wc>>2];wc=p[p[ea+8>>2]+40>>2];Dc=wc;Ec=Bg((wc|0)>-1?wc:-1);Bc=Bc-Cc|0;if((Bc|0)>=1){Kc=Bc>>2;while(1){Gc=p[Ac+12>>2];Bc=Lc+p[Ac+20>>2]|0;Hc=p[Ac+16>>2];Fc=wc+Hc|0;if(Fc>>>0>>0){Bc=Bc+1|0}Cc=Bc;if((Gc|0)<(Bc|0)?1:(Gc|0)<=(Bc|0)?s[Ac+8>>2]>=Fc>>>0?0:1:0){rh(Ec);return 0}Bc=th(Ec,Hc+p[Ac>>2]|0,Dc);p[Ac+16>>2]=Fc;p[Ac+20>>2]=Cc;th(p[p[p[ea+8>>2]- -64>>2]>>2]+Ic|0,Bc,Dc);Ic=Dc+Ic|0;Jc=Jc+1|0;if((Jc|0)<(Kc|0)){continue}break}}rh(Ec);return 1}function Pb(ea){ea=ea|0;var wc=0;p[ea>>2]=1748;wc=p[ea+16>>2];p[ea+16>>2]=0;if(wc){Ta(wc)}return ea|0}function Qb(ea){ea=ea|0;var Ac=0;p[ea>>2]=1748;Ac=p[ea+16>>2];p[ea+16>>2]=0;if(Ac){Ta(Ac)}rh(ea)}function Rb(ea,Mc){var Nc=0;rb(ea);p[ea+36>>2]=0;p[ea+40>>2]=0;p[ea>>2]=1844;p[ea+44>>2]=0;p[ea+48>>2]=0;p[ea+52>>2]=0;p[ea+56>>2]=0;Nc=p[Mc>>2];p[Mc>>2]=0;p[ea+60>>2]=Nc}function Sb(ea,Mc){ea=ea|0;Mc=Mc|0;var Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0;Sc=S-16|0;S=Sc;a:{if(!tb(ea,Mc)){break a}Wc=ea+36|0;Tc=m[p[p[ea>>2]+24>>2]](ea)|0;Qc=p[ea+40>>2];Pc=p[ea+36>>2];Oc=Qc-Pc>>2;b:{if(Tc>>>0>Oc>>>0){Tb(Wc,Tc-Oc|0);break b}if(Tc>>>0>=Oc>>>0){break b}Pc=Pc+(Tc<<2)|0;if((Pc|0)!=(Qc|0)){while(1){Qc=Qc+ -4|0;Oc=p[Qc>>2];p[Qc>>2]=0;if(Oc){m[p[p[Oc>>2]+4>>2]](Oc)}if((Qc|0)!=(Pc|0)){continue}break}}p[ea+40>>2]=Pc}Vc=1;if((Tc|0)<1){break a}Vc=0;Qc=0;while(1){Rc=p[Mc+16>>2];Pc=p[Mc+12>>2];Oc=p[Mc+20>>2];if((Pc|0)<(Oc|0)?1:(Pc|0)<=(Oc|0)?s[Mc+8>>2]>Rc>>>0?0:1:0){break a}Uc=q[Rc+p[Mc>>2]|0];Rc=Rc+1|0;if(Rc>>>0<1){Oc=Oc+1|0}Pc=Mc;p[Pc+16>>2]=Rc;p[Pc+20>>2]=Oc;m[p[p[ea>>2]+48>>2]](Sc+8|0,ea,Uc);Oc=p[ea+36>>2];Pc=p[Sc+8>>2];p[Sc+8>>2]=0;Rc=Qc<<2;Uc=Oc+Rc|0;Oc=p[Uc>>2];p[Uc>>2]=Pc;if(Oc){m[p[p[Oc>>2]+4>>2]](Oc)}Oc=p[Sc+8>>2];p[Sc+8>>2]=0;if(Oc){m[p[p[Oc>>2]+4>>2]](Oc)}Oc=p[p[Wc>>2]+Rc>>2];if(!Oc){break a}if(!(Yc=Oc,Zc=m[p[p[ea>>2]+28>>2]](ea)|0,_c=m[p[p[ea>>2]+20>>2]](ea,Qc)|0,Xc=p[p[Oc>>2]+8>>2],m[Xc](Yc|0,Zc|0,_c|0)|0)){break a}Qc=Qc+1|0;if((Tc|0)!=(Qc|0)){continue}break}Vc=1}S=Sc+16|0;return Vc|0}function Tb(ea,Mc){var $c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0;ad=p[ea+8>>2];bd=ea+4|0;$c=p[bd>>2];if(ad-$c>>2>>>0>=Mc>>>0){ea=Mc<<2;gd=bd,hd=uh($c,0,ea)+ea|0,p[gd>>2]=hd;return}a:{bd=p[ea>>2];cd=$c-bd>>2;dd=cd+Mc|0;if(dd>>>0<1073741824){cd=cd<<2;ad=ad-bd|0;fd=ad>>1;ad=ad>>2>>>0<536870911?fd>>>0
>>0?dd:fd:1073741823;if(ad){if(ad>>>0>=1073741824){break a}ed=Bg(ad<<2)}cd=cd+ed|0;uh(cd,0,Mc<<2);Mc=(dd<<2)+ed|0;dd=(ad<<2)+ed|0;if(($c|0)!=(bd|0)){while(1){$c=$c+ -4|0;ad=p[$c>>2];p[$c>>2]=0;cd=cd+ -4|0;p[cd>>2]=ad;if(($c|0)!=(bd|0)){continue}break}bd=p[ea>>2];$c=p[ea+4>>2]}p[ea>>2]=cd;p[ea+8>>2]=dd;p[ea+4>>2]=Mc;if(($c|0)!=(bd|0)){while(1){$c=$c+ -4|0;ea=p[$c>>2];p[$c>>2]=0;if(ea){m[p[p[ea>>2]+4>>2]](ea)}if(($c|0)!=(bd|0)){continue}break}}if(bd){rh(bd)}return}Pg();E()}sa(1984);E()}function Ub(ea,Mc){ea=ea|0;Mc=Mc|0;var id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0;id=p[ea+60>>2];a:{if(!id){break a}p[id+4>>2]=ea+48;if(!m[p[p[id>>2]+12>>2]](id)){break a}b:{jd=m[p[p[ea>>2]+24>>2]](ea)|0;if((jd|0)<1){break b}ld=ea+60|0;id=0;while(1){c:{md=p[(m[p[p[ea>>2]+28>>2]](ea)|0)+4>>2];nd=m[p[p[ea>>2]+20>>2]](ea,id)|0;kd=p[ld>>2];if(!m[p[p[kd>>2]+8>>2]](kd,p[p[md+8>>2]+(nd<<2)>>2])){break c}id=id+1|0;if((jd|0)!=(id|0)){continue}break b}break}return 0}if(!m[p[p[ea>>2]+36>>2]](ea,Mc)){break a}if(!m[p[p[ea>>2]+40>>2]](ea,Mc)){break a}od=m[p[p[ea>>2]+44>>2]](ea)|0}return od|0}function Vb(ea,Mc){ea=ea|0;Mc=Mc|0;var pd=0,qd=0,rd=0,sd=0,td=0;pd=1;qd=m[p[p[ea>>2]+24>>2]](ea)|0;a:{if((qd|0)<1){break a}sd=ea+48|0;pd=0;td=ea+36|0;ea=0;while(1){rd=p[p[td>>2]+(ea<<2)>>2];if(!m[p[p[rd>>2]+16>>2]](rd,sd,Mc)){break a}ea=ea+1|0;if((qd|0)!=(ea|0)){continue}break}pd=1}return pd|0}function Wb(ea,Mc){ea=ea|0;Mc=Mc|0;var ud=0,vd=0,wd=0,xd=0,yd=0;ud=1;vd=m[p[p[ea>>2]+24>>2]](ea)|0;a:{if((vd|0)<1){break a}xd=ea+48|0;ud=0;yd=ea+36|0;ea=0;while(1){wd=p[p[yd>>2]+(ea<<2)>>2];if(!m[p[p[wd>>2]+20>>2]](wd,xd,Mc)){break a}ea=ea+1|0;if((vd|0)!=(ea|0)){continue}break}ud=1}return ud|0}function Xb(ea){ea=ea|0;var Mc=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0;Bd=S-16|0;S=Bd;Mc=1;Ed=m[p[p[ea>>2]+24>>2]](ea)|0;a:{if((Ed|0)<1){break a}Kd=ea+48|0;Dd=ea+36|0;while(1){b:{c:{if(!p[(m[p[p[ea>>2]+28>>2]](ea)|0)+40>>2]){break c}Fd=Cd<<2;Mc=p[Fd+p[Dd>>2]>>2];zd=p[Mc+8>>2];Gd=Mb(Mc);if(!Gd){break c}Mc=m[p[p[ea>>2]+28>>2]](ea)|0;Hd=p[zd+56>>2];Id=p[Mc+40>>2];Mc=Bg(32);p[Bd>>2]=Mc;p[Bd+4>>2]=24;p[Bd+8>>2]=-2147483616;n[Mc+24|0]=0;zd=q[1916]|q[1917]<<8|(q[1918]<<16|q[1919]<<24);Ad=q[1912]|q[1913]<<8|(q[1914]<<16|q[1915]<<24);n[Mc+16|0]=Ad;n[Mc+17|0]=Ad>>>8;n[Mc+18|0]=Ad>>>16;n[Mc+19|0]=Ad>>>24;n[Mc+20|0]=zd;n[Mc+21|0]=zd>>>8;n[Mc+22|0]=zd>>>16;n[Mc+23|0]=zd>>>24;zd=q[1908]|q[1909]<<8|(q[1910]<<16|q[1911]<<24);Ad=q[1904]|q[1905]<<8|(q[1906]<<16|q[1907]<<24);n[Mc+8|0]=Ad;n[Mc+9|0]=Ad>>>8;n[Mc+10|0]=Ad>>>16;n[Mc+11|0]=Ad>>>24;n[Mc+12|0]=zd;n[Mc+13|0]=zd>>>8;n[Mc+14|0]=zd>>>16;n[Mc+15|0]=zd>>>24;zd=q[1900]|q[1901]<<8|(q[1902]<<16|q[1903]<<24);Ad=q[1896]|q[1897]<<8|(q[1898]<<16|q[1899]<<24);n[Mc|0]=Ad;n[Mc+1|0]=Ad>>>8;n[Mc+2|0]=Ad>>>16;n[Mc+3|0]=Ad>>>24;n[Mc+4|0]=zd;n[Mc+5|0]=zd>>>8;n[Mc+6|0]=zd>>>16;n[Mc+7|0]=zd>>>24;d:{e:{Ad=Id+16|0;zd=Ad;Mc=p[zd>>2];if(!Mc){break e}while(1){Jd=p[Mc+16>>2]<(Hd|0);zd=Jd?zd:Mc;Mc=p[(Jd<<2)+Mc>>2];if(Mc){continue}break}if((zd|0)==(Ad|0)|(Hd|0)>2]){break e}Mc=zd+20|0;if(!Gb(Mc,Bd)){break e}Mc=mf(Mc,Bd);break d}Mc=mf(Id,Bd)}if(n[Bd+11|0]<=-1){rh(p[Bd>>2])}if(!Mc){break c}pb(p[p[p[Dd>>2]+Fd>>2]+8>>2],Gd);break b}Mc=p[p[Dd>>2]+(Cd<<2)>>2];if(m[p[p[Mc>>2]+24>>2]](Mc,Kd)){break b}Mc=0;break a}Mc=1;Cd=Cd+1|0;if((Ed|0)!=(Cd|0)){continue}break}}S=Bd+16|0;return Mc|0}function Yb(ea,Ld,Md){ea=ea|0;Ld=Ld|0;Md=Md|0;if(Md>>>0>3){p[ea>>2]=0;return}a:{b:{switch(Md-1|0){default:Ld=Bg(20);Hb(Ld);break a;case 0:Ld=Bg(24);ac(Ld);break a;case 1:Ld=Bg(36);ac(Ld);p[Ld+32>>2]=0;p[Ld+24>>2]=-1;p[Ld+28>>2]=0;p[Ld>>2]=10604;break a;case 2:break b}}Ld=Bg(28);ac(Ld);p[Ld+24>>2]=-1;p[Ld>>2]=6584;p[ea>>2]=Ld;return}p[ea>>2]=Ld}function Zb(ea){ea=ea|0;var Ld=0,Md=0,Nd=0,Od=0,Pd=0;p[ea>>2]=1844;Ld=ea+60|0;Md=p[Ld>>2];p[Ld>>2]=0;if(Md){m[p[p[Md>>2]+4>>2]](Md)}Ld=p[ea+48>>2];if(Ld){p[ea+52>>2]=Ld;rh(Ld)}Md=p[ea+36>>2];if(Md){Ld=Md;Pd=ea+40|0;Nd=p[Pd>>2];Od=Ld;a:{if((Ld|0)==(Nd|0)){break a}while(1){Nd=Nd+ -4|0;Ld=p[Nd>>2];p[Nd>>2]=0;if(Ld){m[p[p[Ld>>2]+4>>2]](Ld)}if((Md|0)!=(Nd|0)){continue}break}Od=p[ea+36>>2]}Ld=Od;p[Pd>>2]=Md;rh(Ld)}p[ea>>2]=1536;Ld=p[ea+16>>2];if(Ld){p[ea+20>>2]=Ld;rh(Ld)}Ld=p[ea+4>>2];if(Ld){p[ea+8>>2]=Ld;rh(Ld)}return ea|0}function _b(ea){ea=ea|0;var Qd=0,Rd=0,Sd=0,Td=0,Ud=0;p[ea>>2]=1844;Qd=ea+60|0;Rd=p[Qd>>2];p[Qd>>2]=0;if(Rd){m[p[p[Rd>>2]+4>>2]](Rd)}Qd=p[ea+48>>2];if(Qd){p[ea+52>>2]=Qd;rh(Qd)}Rd=p[ea+36>>2];if(Rd){Qd=Rd;Ud=ea+40|0;Sd=p[Ud>>2];Td=Qd;a:{if((Qd|0)==(Sd|0)){break a}while(1){Sd=Sd+ -4|0;Qd=p[Sd>>2];p[Sd>>2]=0;if(Qd){m[p[p[Qd>>2]+4>>2]](Qd)}if((Rd|0)!=(Sd|0)){continue}break}Td=p[ea+36>>2]}Qd=Td;p[Ud>>2]=Rd;rh(Qd)}p[ea>>2]=1536;Qd=p[ea+16>>2];if(Qd){p[ea+20>>2]=Qd;rh(Qd)}Qd=p[ea+4>>2];if(Qd){p[ea+8>>2]=Qd;rh(Qd)}rh(ea)}function $b(ea,Vd){ea=ea|0;Vd=Vd|0;var Wd=0,Xd=0;Xd=p[ea+16>>2];Wd=0;a:{if(p[ea+20>>2]-Xd>>2<=(Vd|0)){break a}Vd=p[(Vd<<2)+Xd>>2];Wd=0;if((Vd|0)<0){break a}Wd=Mb(p[p[ea+36>>2]+(Vd<<2)>>2])}return Wd|0}function ac(ea){Hb(ea);p[ea+20>>2]=0;p[ea>>2]=2060}function bc(p,ea,Vd){p=p|0;ea=ea|0;Vd=Vd|0;return Ib(p,ea,Vd)|0}function cc(ea,Vd){ea=ea|0;Vd=Vd|0;var Yd=0,Zd=0;Zd=p[ea+4>>2];a:{if(Zd){Yd=1;if(q[Zd+36|0]<2){break a}}Yd=m[p[p[ea>>2]+48>>2]](ea,p[Vd+4>>2]-p[Vd>>2]>>2)|0}return Yd|0}function dc(ea,Vd,_d){ea=ea|0;Vd=Vd|0;_d=_d|0;var $d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0;be=S-16|0;S=be;fe=p[_d+8>>2];ce=p[_d+16>>2];de=p[_d+12>>2];$d=de;ae=p[_d+20>>2];a:{if(($d|0)<(ae|0)?1:($d|0)<=(ae|0)?fe>>>0>ce>>>0?0:1:0){break a}ge=p[_d>>2];he=n[ge+ce|0];$d=ae;ee=ce+1|0;if(ee>>>0<1){$d=$d+1|0}p[_d+16>>2]=ee;p[_d+20>>2]=$d;b:{if((he|0)==-2){break b}if((de|0)<($d|0)?1:(de|0)<=($d|0)?fe>>>0>ee>>>0?0:1:0){break a}de=n[ee+ge|0];ce=ce+2|0;if(ce>>>0<2){ae=ae+1|0}$d=_d;p[$d+16>>2]=ce;p[$d+20>>2]=ae;m[p[p[ea>>2]+40>>2]](be+8|0,ea,he,de);ae=p[be+8>>2];p[be+8>>2]=0;$d=p[ea+20>>2];p[ea+20>>2]=ae;if(!$d){p[be+8>>2]=0;break b}m[p[p[$d>>2]+4>>2]]($d);$d=p[be+8>>2];p[be+8>>2]=0;if(!$d){break b}m[p[p[$d>>2]+4>>2]]($d)}$d=p[ea+20>>2];if($d){if(!m[p[p[ea>>2]+28>>2]](ea,$d)){break a}}if(!m[p[p[ea>>2]+36>>2]](ea,Vd,_d)){break a}_d=p[ea+4>>2];if(!(!_d|q[_d+36|0]>1)){if(!m[p[p[ea>>2]+48>>2]](ea,p[Vd+4>>2]-p[Vd>>2]>>2)){break a}}ie=1}S=be+16|0;return ie|0}function ec(ea,Vd,_d,je){ea=ea|0;Vd=Vd|0;_d=_d|0;je=je|0;var ke=0,le=0;ke=S-48|0;S=ke;a:{if((je|0)!=1){p[ea>>2]=0;break a}je=p[Vd+4>>2];Vd=p[Vd+12>>2];p[ke+40>>2]=0;le=ke+32|0;p[le>>2]=0;p[le+4>>2]=0;p[ke+24>>2]=0;p[ke+28>>2]=0;p[ke+16>>2]=0;p[ke+20>>2]=0;p[ke+8>>2]=0;p[ke+12>>2]=0;fc(ke,_d,Vd,je,ke+8|0);Vd=p[le>>2];if(Vd){p[ke+36>>2]=Vd;rh(Vd)}p[ea>>2]=p[ke>>2]}S=ke+48|0}function fc(ea,Vd,_d,je,me){var ne=0,oe=0;a:{if((Vd|0)!=-2){oe=p[p[p[je+4>>2]+8>>2]+(_d<<2)>>2];if((m[p[p[je>>2]+8>>2]](je)|0)==1){ne=Vd;Vd=r[je+36>>1];mc(ea,je,ne,_d,me,(Vd<<24|Vd<<8&16711680)>>>16);if(p[ea>>2]){break a}p[ea>>2]=0}ne=Bg(44);nc(ne,oe,me)}p[ea>>2]=ne}}function gc(ea,Vd,_d){ea=ea|0;Vd=Vd|0;_d=_d|0;var je=0,me=0,pe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0;a:{ye=m[p[p[ea>>2]+44>>2]](ea)|0;if((ye|0)<1){break a}se=p[Vd+4>>2]-p[Vd>>2]>>2;hc(ea,se,ye);je=p[ea+16>>2];if(!p[je+80>>2]){break a}pe=p[p[je>>2]>>2];if(!pe){break a}ue=p[_d+8>>2];te=p[_d+16>>2];re=p[_d+12>>2];ve=re;me=p[_d+20>>2];if((ve|0)<(me|0)?1:(ve|0)<=(me|0)?ue>>>0>te>>>0?0:1:0){break a}ve=v(se,ye);xe=pe+p[je+48>>2]|0;ze=p[_d>>2];Ae=q[ze+te|0];se=_d;je=me;pe=te+1|0;if(pe>>>0<1){je=je+1|0}we=pe;pe=je;p[se+16>>2]=we;p[se+20>>2]=je;b:{c:{d:{if(Ae){if(qe(ve,ye,_d,xe)){break d}break a}if((re|0)<(pe|0)?1:(re|0)<=(pe|0)?ue>>>0>we>>>0?0:1:0){break a}se=q[we+ze|0];je=me;me=te+2|0;if(me>>>0<2){je=je+1|0}p[_d+16>>2]=me;p[_d+20>>2]=je;je=kf(5);me=p[p[ea+16>>2]- -64>>2];me=p[me+4>>2]-p[me>>2]|0;e:{if((je|0)==(se|0)){se=ve<<2;if(me>>>0>>0){break a}pe=p[_d+12>>2];je=p[_d+20>>2];te=p[_d+16>>2];me=se;re=te+me|0;if(re>>>0>>0){je=je+1|0}if((pe|0)>(je|0)?1:(pe|0)>=(je|0)?s[_d+8>>2]>>0?0:1:0){break e}break a}if(me>>>0>>0){break a}te=p[_d+12>>2];je=p[_d+20>>2];ue=p[_d+8>>2];pe=ue;we=p[_d+16>>2];re=we;me=se;Ae=pe-re>>>0>=Sh(me,0,ve,0)>>>0?0:1;pe=te-(je+(pe>>>0>>0)|0)|0;re=U;if((pe|0)<(re|0)?1:(pe|0)<=(re|0)?Ae:0){break a}pe=0;if(!ve){break c}re=0;pe=ue;ue=me+we|0;if(ue>>>0>>0){je=je+1|0}if((te|0)<(je|0)?1:(te|0)<=(je|0)?pe>>>0>=ue>>>0?0:1:0){break b}ue=0;while(1){th(xe+(ue<<2)|0,we+p[_d>>2]|0,se);je=p[_d+20>>2];we=me+p[_d+16>>2]|0;if(we>>>0>>0){je=je+1|0}p[_d+16>>2]=we;p[_d+20>>2]=je;ue=ue+1|0;if((ve|0)==(ue|0)){break d}te=p[_d+12>>2];ze=me+we|0;if(ze>>>0>>0){je=je+1|0}if((te|0)>(je|0)?1:(te|0)>=(je|0)?s[_d+8>>2]>>0?0:1:0){continue}break}break b}th(xe,te+p[_d>>2]|0,se);je=p[_d+20>>2];pe=me+p[_d+16>>2]|0;if(pe>>>0>>0){je=je+1|0}p[_d+16>>2]=pe;p[_d+20>>2]=je}pe=0;if(!ve){break c}me=p[ea+20>>2];if(me){pe=1;if(m[p[p[me>>2]+32>>2]](me)){break c}}cf(xe,ve,xe);pe=1}me=p[ea+20>>2];f:{if(!me){break f}if(!m[p[p[me>>2]+40>>2]](me,_d)){break a}if(!pe){break f}re=0;ea=p[ea+20>>2];if(!m[p[p[ea>>2]+44>>2]](ea,xe,xe,ve,ye,p[Vd>>2])){break b}}re=1}return re|0}return 0}function hc(ea,Vd,_d){var qe=0,Be=0,Ce=0,De=0;qe=S-80|0;S=qe;Be=jb(qe+16|0);Ce=p[p[ea+8>>2]+56>>2];De=_d<<24>>24;_d=v(kf(5),_d);kb(Be,Ce,De,5,0,_d,_d>>31);_d=Bg(96);nb(_d,Be);p[qe+8>>2]=_d;n[_d+84|0]=1;p[_d+72>>2]=p[_d+68>>2];ob(_d,Vd);p[qe>>2]=0;Vd=p[qe+8>>2];p[qe+8>>2]=0;_d=ea+16|0;ea=p[_d>>2];p[_d>>2]=Vd;a:{if(!ea){p[qe>>2]=0;break a}Ta(ea);ea=p[qe>>2];p[qe>>2]=0;if(!ea){break a}Ta(ea)}ea=p[qe+8>>2];p[qe+8>>2]=0;if(ea){Ta(ea)}S=qe+80|0}function ic(ea,Vd){ea=ea|0;Vd=Vd|0;var _d=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0;Ee=p[ea+8>>2];_d=p[Ee+28>>2]+ -1|0;if(_d>>>0>5){return 0}a:{b:{switch(_d-1|0){case 0:Ge=n[Ee+24|0];He=Bg((Ge|0)>-1?Ge:-1);_d=p[ea+16>>2];Ee=0;c:{if(!p[_d+80>>2]){break c}Ee=p[p[_d>>2]>>2]+p[_d+48>>2]|0}if(!Vd){break a}Ie=(Ge|0)<1;Ke=ea+8|0;_d=0;while(1){ea=0;if(!Ie){while(1){n[ea+He|0]=p[Ee+(_d<<2)>>2];_d=_d+1|0;ea=ea+1|0;if((Ge|0)!=(ea|0)){continue}break}}th(p[p[p[Ke>>2]- -64>>2]>>2]+Je|0,He,Ge);Je=Ge+Je|0;Fe=Fe+1|0;if((Fe|0)!=(Vd|0)){continue}break}break a;default:Ge=n[Ee+24|0];He=Bg((Ge|0)>-1?Ge:-1);_d=p[ea+16>>2];Ee=0;d:{if(!p[_d+80>>2]){break d}Ee=p[p[_d>>2]>>2]+p[_d+48>>2]|0}if(!Vd){break a}Ie=(Ge|0)<1;Ke=ea+8|0;_d=0;while(1){ea=0;if(!Ie){while(1){n[ea+He|0]=p[Ee+(_d<<2)>>2];_d=_d+1|0;ea=ea+1|0;if((Ge|0)!=(ea|0)){continue}break}}th(p[p[p[Ke>>2]- -64>>2]>>2]+Je|0,He,Ge);Je=Ge+Je|0;Fe=Fe+1|0;if((Fe|0)!=(Vd|0)){continue}break}break a;case 2:Fe=n[Ee+24|0];Ee=Fe+Fe|0;He=Bg(Ee>>>0>>0?-1:Ee);_d=p[ea+16>>2];Ee=0;e:{if(!p[_d+80>>2]){break e}Ee=p[p[_d>>2]>>2]+p[_d+48>>2]|0}if(!Vd){break a}Ie=Fe<<1;Ke=(Fe|0)<1;Le=ea+8|0;_d=0;while(1){ea=0;if(!Ke){while(1){o[(ea<<1)+He>>1]=p[Ee+(_d<<2)>>2];_d=_d+1|0;ea=ea+1|0;if((Fe|0)!=(ea|0)){continue}break}}th(p[p[p[Le>>2]- -64>>2]>>2]+Je|0,He,Ie);Je=Je+Ie|0;Ge=Ge+1|0;if((Ge|0)!=(Vd|0)){continue}break}break a;case 1:Fe=n[Ee+24|0];Ee=Fe+Fe|0;He=Bg(Ee>>>0>>0?-1:Ee);_d=p[ea+16>>2];Ee=0;f:{if(!p[_d+80>>2]){break f}Ee=p[p[_d>>2]>>2]+p[_d+48>>2]|0}if(!Vd){break a}Ie=Fe<<1;Ke=(Fe|0)<1;Le=ea+8|0;_d=0;while(1){ea=0;if(!Ke){while(1){o[(ea<<1)+He>>1]=p[Ee+(_d<<2)>>2];_d=_d+1|0;ea=ea+1|0;if((Fe|0)!=(ea|0)){continue}break}}th(p[p[p[Le>>2]- -64>>2]>>2]+Je|0,He,Ie);Je=Je+Ie|0;Ge=Ge+1|0;if((Ge|0)!=(Vd|0)){continue}break}break a;case 4:Fe=n[Ee+24|0];Ie=Fe<<2;He=Bg((Fe|0)!=(Fe&1073741823)?-1:Ie);_d=p[ea+16>>2];Ee=0;g:{if(!p[_d+80>>2]){break g}Ee=p[p[_d>>2]>>2]+p[_d+48>>2]|0}if(!Vd){break a}Ke=(Fe|0)<1;Le=ea+8|0;_d=0;while(1){ea=0;if(!Ke){while(1){p[(ea<<2)+He>>2]=p[Ee+(_d<<2)>>2];_d=_d+1|0;ea=ea+1|0;if((Fe|0)!=(ea|0)){continue}break}}th(p[p[p[Le>>2]- -64>>2]>>2]+Je|0,He,Ie);Je=Je+Ie|0;Ge=Ge+1|0;if((Ge|0)!=(Vd|0)){continue}break}break a;case 3:break b}}Fe=n[Ee+24|0];Ie=Fe<<2;He=Bg((Fe|0)!=(Fe&1073741823)?-1:Ie);_d=p[ea+16>>2];Ee=0;h:{if(!p[_d+80>>2]){break h}Ee=p[p[_d>>2]>>2]+p[_d+48>>2]|0}if(!Vd){break a}Ke=(Fe|0)<1;Le=ea+8|0;_d=0;while(1){ea=0;if(!Ke){while(1){p[(ea<<2)+He>>2]=p[Ee+(_d<<2)>>2];_d=_d+1|0;ea=ea+1|0;if((Fe|0)!=(ea|0)){continue}break}}th(p[p[p[Le>>2]- -64>>2]>>2]+Je|0,He,Ie);Je=Je+Ie|0;Ge=Ge+1|0;if((Ge|0)!=(Vd|0)){continue}break}}rh(He);return 1}function jc(ea){ea=ea|0;var Vd=0,Me=0;p[ea>>2]=2060;Me=ea+20|0;Vd=p[Me>>2];p[Me>>2]=0;if(Vd){m[p[p[Vd>>2]+4>>2]](Vd)}p[ea>>2]=1748;Me=ea+16|0;Vd=p[Me>>2];p[Me>>2]=0;if(Vd){Ta(Vd)}return ea|0}function kc(ea){ea=ea|0;var Ne=0,Oe=0;p[ea>>2]=2060;Oe=ea+20|0;Ne=p[Oe>>2];p[Oe>>2]=0;if(Ne){m[p[p[Ne>>2]+4>>2]](Ne)}p[ea>>2]=1748;Oe=ea+16|0;Ne=p[Oe>>2];p[Oe>>2]=0;if(Ne){Ta(Ne)}rh(ea)}function lc(ea){ea=ea|0;return n[p[ea+8>>2]+24|0]}function mc(ea,Pe,Qe,Re,Se,Te){var Ue=0,Ve=0,We=0,Xe=0;Ue=S-32|0;S=Ue;We=p[p[p[Pe+4>>2]+8>>2]+(Re<<2)>>2];a:{b:{if((m[p[p[Pe>>2]+8>>2]](Pe)|0)!=1|Qe+ -1>>>0>5){break b}Xe=m[p[p[Pe>>2]+36>>2]](Pe)|0;Ve=m[p[p[Pe>>2]+44>>2]](Pe,Re)|0;if(!(Ve?Xe:0)){p[ea>>2]=0;break a}Re=m[p[p[Pe>>2]+40>>2]](Pe,Re)|0;if(Re){Pe=p[Pe+44>>2];p[Ue+12>>2]=Re;p[Ue+8>>2]=Pe;p[Ue+20>>2]=Ve;p[Ue+16>>2]=Ve+12;oc(ea,Qe,We,Se,Ue+8|0,Te);if(p[ea>>2]){break a}p[ea>>2]=0;break b}Pe=p[Pe+44>>2];p[Ue+12>>2]=Xe;p[Ue+8>>2]=Pe;p[Ue+20>>2]=Ve;p[Ue+16>>2]=Ve+12;pc(ea,Qe,We,Se,Ue+8|0,Te);if(p[ea>>2]){break a}p[ea>>2]=0}p[ea>>2]=0}S=Ue+32|0}function nc(ea,Pe,Qe){var Re=0,Se=0,Te=0,Ye=0,Ze=0,_e=0,$e=0,af=0;p[ea>>2]=2884;p[ea+4>>2]=Pe;Pe=p[Qe+8>>2];Re=p[Qe+12>>2];Se=p[Qe+16>>2];Ye=p[Qe+20>>2];Ze=p[Qe>>2];_e=p[Qe+4>>2];p[ea+40>>2]=0;Te=ea+32|0;p[Te>>2]=0;p[Te+4>>2]=0;p[ea+24>>2]=Se;p[ea+28>>2]=Ye;p[ea+16>>2]=Pe;p[ea+20>>2]=Re;p[ea+8>>2]=Ze;p[ea+12>>2]=_e;a:{Pe=p[Qe+28>>2]-p[Qe+24>>2]|0;b:{if(!Pe){break b}Re=Pe>>2;if(Re>>>0>=1073741824){break a}Pe=Bg(Pe);p[ea+32>>2]=Pe;Se=ea+36|0;p[Se>>2]=Pe;p[ea+40>>2]=Pe+(Re<<2);Re=p[Qe+24>>2];Qe=p[Qe+28>>2]-Re|0;if((Qe|0)<1){break b}$e=Se,af=th(Pe,Re,Qe)+Qe|0,p[$e>>2]=af}p[ea>>2]=6424;return}Pg();E()}function oc(ea,Pe,Qe,bf,cf,df){Pe=Pe+ -1|0;if(Pe>>>0>5){p[ea>>2]=0;return}a:{b:{switch(Pe-1|0){default:Pe=Bg(60);qc(Pe,Qe,bf,cf);p[Pe>>2]=2176;break a;case 0:Pe=Bg(60);qc(Pe,Qe,bf,cf);p[Pe>>2]=2940;break a;case 2:Pe=Bg(112);qc(Pe,Qe,bf,cf);p[Pe>>2]=3176;p[Pe+60>>2]=0;p[Pe+64>>2]=0;p[Pe+68>>2]=0;p[Pe+72>>2]=0;p[Pe+76>>2]=0;p[Pe+80>>2]=0;p[Pe+84>>2]=0;p[Pe+88>>2]=0;p[Pe+92>>2]=0;p[Pe+96>>2]=0;p[Pe+100>>2]=0;p[Pe+104>>2]=0;p[Pe+108>>2]=0;break a;case 1:Pe=Bg(92);qc(Pe,Qe,bf,cf);p[Pe+60>>2]=0;p[Pe+64>>2]=0;p[Pe>>2]=3424;p[Pe+88>>2]=df;p[Pe+68>>2]=0;p[Pe+72>>2]=0;p[Pe+76>>2]=0;p[Pe+80>>2]=0;p[Pe+84>>2]=0;break a;case 3:Pe=Bg(104);qc(Pe,Qe,bf,cf);p[Pe+76>>2]=0;p[Pe+80>>2]=0;p[Pe+60>>2]=0;p[Pe+64>>2]=0;p[Pe>>2]=3652;p[Pe+84>>2]=0;Qe=p[cf+4>>2];p[Pe+88>>2]=p[cf>>2];p[Pe+92>>2]=Qe;Qe=p[cf+12>>2];p[Pe+96>>2]=p[cf+8>>2];p[Pe+100>>2]=Qe;break a;case 4:break b}}Pe=Bg(124);qc(Pe,Qe,bf,cf);p[Pe>>2]=3888;Qe=Pe- -64|0;p[Qe>>2]=0;p[Qe+4>>2]=0;Qe=p[cf+4>>2];p[Pe+72>>2]=p[cf>>2];p[Pe+76>>2]=Qe;Qe=p[cf+12>>2];p[Pe+80>>2]=p[cf+8>>2];p[Pe+84>>2]=Qe;p[Pe+92>>2]=-1;p[Pe+96>>2]=-1;p[Pe+88>>2]=1;p[Pe+60>>2]=4124;p[Pe+100>>2]=-1;p[Pe+104>>2]=-1;le(Pe+108|0);p[ea>>2]=Pe;return}p[ea>>2]=Pe}function pc(ea,Pe,Qe,bf,cf,df){Pe=Pe+ -1|0;if(Pe>>>0>5){p[ea>>2]=0;return}a:{b:{switch(Pe-1|0){default:Pe=Bg(60);gd(Pe,Qe,bf,cf);p[Pe>>2]=4516;break a;case 0:Pe=Bg(60);gd(Pe,Qe,bf,cf);p[Pe>>2]=4940;break a;case 2:Pe=Bg(112);gd(Pe,Qe,bf,cf);p[Pe>>2]=5164;p[Pe+60>>2]=0;p[Pe+64>>2]=0;p[Pe+68>>2]=0;p[Pe+72>>2]=0;p[Pe+76>>2]=0;p[Pe+80>>2]=0;p[Pe+84>>2]=0;p[Pe+88>>2]=0;p[Pe+92>>2]=0;p[Pe+96>>2]=0;p[Pe+100>>2]=0;p[Pe+104>>2]=0;p[Pe+108>>2]=0;break a;case 1:Pe=Bg(92);gd(Pe,Qe,bf,cf);p[Pe+60>>2]=0;p[Pe+64>>2]=0;p[Pe>>2]=5400;p[Pe+88>>2]=df;p[Pe+68>>2]=0;p[Pe+72>>2]=0;p[Pe+76>>2]=0;p[Pe+80>>2]=0;p[Pe+84>>2]=0;break a;case 3:Pe=Bg(104);gd(Pe,Qe,bf,cf);p[Pe+76>>2]=0;p[Pe+80>>2]=0;p[Pe+60>>2]=0;p[Pe+64>>2]=0;p[Pe>>2]=5616;p[Pe+84>>2]=0;Qe=p[cf+4>>2];p[Pe+88>>2]=p[cf>>2];p[Pe+92>>2]=Qe;Qe=p[cf+12>>2];p[Pe+96>>2]=p[cf+8>>2];p[Pe+100>>2]=Qe;break a;case 4:break b}}Pe=Bg(124);gd(Pe,Qe,bf,cf);p[Pe>>2]=5840;Qe=Pe- -64|0;p[Qe>>2]=0;p[Qe+4>>2]=0;Qe=p[cf+4>>2];p[Pe+72>>2]=p[cf>>2];p[Pe+76>>2]=Qe;Qe=p[cf+12>>2];p[Pe+80>>2]=p[cf+8>>2];p[Pe+84>>2]=Qe;p[Pe+92>>2]=-1;p[Pe+96>>2]=-1;p[Pe+88>>2]=1;p[Pe+60>>2]=6060;p[Pe+100>>2]=-1;p[Pe+104>>2]=-1;le(Pe+108|0);p[ea>>2]=Pe;return}p[ea>>2]=Pe}function qc(ea,Pe,Qe,bf){var cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0;p[ea>>2]=2884;p[ea+4>>2]=Pe;Pe=p[Qe+8>>2];cf=p[Qe+12>>2];df=p[Qe+16>>2];ff=p[Qe+20>>2];gf=p[Qe>>2];hf=p[Qe+4>>2];p[ea+40>>2]=0;ef=ea+32|0;p[ef>>2]=0;p[ef+4>>2]=0;p[ea+24>>2]=df;p[ea+28>>2]=ff;p[ea+16>>2]=Pe;p[ea+20>>2]=cf;p[ea+8>>2]=gf;p[ea+12>>2]=hf;a:{Pe=p[Qe+28>>2]-p[Qe+24>>2]|0;b:{if(!Pe){break b}cf=Pe>>2;if(cf>>>0>=1073741824){break a}Pe=Bg(Pe);p[ea+32>>2]=Pe;df=ea+36|0;p[df>>2]=Pe;p[ea+40>>2]=Pe+(cf<<2);cf=p[Qe+24>>2];Qe=p[Qe+28>>2]-cf|0;if((Qe|0)<1){break b}jf=df,kf=th(Pe,cf,Qe)+Qe|0,p[jf>>2]=kf}p[ea>>2]=2828;Pe=p[bf+4>>2];p[ea+44>>2]=p[bf>>2];p[ea+48>>2]=Pe;Pe=p[bf+12>>2];p[ea+52>>2]=p[bf+8>>2];p[ea+56>>2]=Pe;return}Pg();E()}function rc(ea){ea=ea|0;var Pe=0;p[ea>>2]=2884;Pe=p[ea+32>>2];if(Pe){p[ea+36>>2]=Pe;rh(Pe)}rh(ea)}function sc(ea){ea=ea|0;return p[ea+4>>2]}function tc(ea){ea=ea|0;var Qe=0;if(!(!p[ea+52>>2]|(!p[ea+44>>2]|!p[ea+48>>2]))){Qe=p[ea+56>>2]!=0}return Qe|0}function uc(p,ea){p=p|0;ea=ea|0;return-1}function vc(ea,bf){ea=ea|0;bf=bf|0;var lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0;mf=p[bf+12>>2];rf=mf;lf=p[bf+20>>2];of=lf;pf=p[bf+16>>2];nf=pf+4|0;if(nf>>>0<4){lf=lf+1|0}sf=p[bf+8>>2];qf=nf;nf=lf;a:{if((mf|0)<(lf|0)?1:(mf|0)<=(lf|0)?sf>>>0>=qf>>>0?0:1:0){break a}tf=p[bf>>2];lf=tf+pf|0;mf=q[lf|0]|q[lf+1|0]<<8|(q[lf+2|0]<<16|q[lf+3|0]<<24);p[bf+16>>2]=qf;p[bf+20>>2]=nf;lf=of;of=pf+8|0;if(of>>>0<8){lf=lf+1|0}nf=of;of=lf;if((rf|0)<(lf|0)?1:(rf|0)<=(lf|0)?sf>>>0>=nf>>>0?0:1:0){break a}lf=qf+tf|0;lf=q[lf|0]|q[lf+1|0]<<8|(q[lf+2|0]<<16|q[lf+3|0]<<24);p[bf+16>>2]=nf;p[bf+20>>2]=of;if((mf|0)>(lf|0)){break a}p[ea+16>>2]=lf;p[ea+12>>2]=mf;bf=mf;mf=(lf>>31)-((lf>>>0>>0)+(bf>>31)|0)|0;bf=lf-bf|0;if(!mf&bf>>>0>2147483646|mf>>>0>0){break a}uf=1;bf=bf+1|0;p[ea+20>>2]=bf;mf=ea+24|0;lf=(bf|0)/2|0;p[mf>>2]=lf;p[ea+28>>2]=0-lf;if(bf&1){break a}p[mf>>2]=lf+ -1}return uf|0}function wc(ea,bf,vf,wf,xf,yf){ea=ea|0;bf=bf|0;vf=vf|0;wf=wf|0;xf=xf|0;yf=yf|0;var zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0;p[ea+8>>2]=xf;yf=ea+32|0;zf=p[yf>>2];wf=p[ea+36>>2]-zf>>2;a:{if(wf>>>0>>0){vb(yf,xf-wf|0);break a}if(wf>>>0<=xf>>>0){break a}p[ea+36>>2]=zf+(xf<<2)}Nf=p[ea+52>>2];Kf=p[ea+48>>2];wf=0;yf=(xf&1073741823)!=(xf|0)?-1:xf<<2;If=uh(Bg(yf),0,yf);Ef=ea+8|0;yf=p[Ef>>2];b:{if((yf|0)<1){break b}Ff=ea+16|0;zf=ea+32|0;Gf=ea+12|0;while(1){yf=wf<<2;Bf=p[yf+If>>2];Df=p[Ff>>2];c:{if((Bf|0)>(Df|0)){Af=p[zf>>2];p[yf+Af>>2]=Df;break c}Af=p[zf>>2];yf=yf+Af|0;Df=p[Gf>>2];if((Bf|0)<(Df|0)){p[yf>>2]=Df;break c}p[yf>>2]=Bf}wf=wf+1|0;yf=p[Ef>>2];if((wf|0)<(yf|0)){continue}break}if((yf|0)<1){break b}zf=0;Ef=ea+16|0;Bf=ea+20|0;Ff=ea+8|0;Gf=ea+12|0;while(1){yf=zf<<2;wf=yf+vf|0;yf=p[bf+yf>>2]+p[yf+Af>>2]|0;p[wf>>2]=yf;d:{if((yf|0)>p[Ef>>2]){yf=yf-p[Bf>>2]|0}else{if((yf|0)>=p[Gf>>2]){break d}yf=yf+p[Bf>>2]|0}p[wf>>2]=yf}zf=zf+1|0;yf=p[Ff>>2];if((zf|0)<(yf|0)){continue}break}}wf=p[ea+56>>2];Lf=p[wf>>2];wf=p[wf+4>>2]-Lf|0;if((wf|0)>=5){Mf=wf>>2;Ef=ea+16|0;Ff=ea+32|0;Gf=ea+8|0;Df=ea+20|0;Jf=ea+12|0;Of=Kf+28|0;Bf=1;while(1){e:{f:{if(Mf>>>0>Bf>>>0){Hf=v(xf,Bf);ea=p[(Bf<<2)+Lf>>2];if((ea|0)==-1|p[p[Kf>>2]+(ea>>>3&536870908)>>2]>>>(ea&31)&1){break f}ea=p[p[p[Kf+64>>2]+12>>2]+(ea<<2)>>2];if((ea|0)==-1){break f}zf=p[Nf>>2];wf=p[Of>>2];Af=p[zf+(p[wf+(ea<<2)>>2]<<2)>>2];if((Af|0)>=(Bf|0)){break f}Cf=ea+1|0;Cf=p[zf+(p[wf+(((Cf>>>0)%3|0?Cf:ea+ -2|0)<<2)>>2]<<2)>>2];if((Cf|0)>=(Bf|0)){break f}ea=p[zf+(p[wf+(ea+((ea>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((ea|0)>=(Bf|0)){break f}if((xf|0)>=1){ea=v(ea,xf);zf=v(xf,Cf);Af=v(xf,Af);wf=0;while(1){p[(wf<<2)+If>>2]=(p[(ea+wf<<2)+vf>>2]+p[(wf+zf<<2)+vf>>2]|0)-p[(wf+Af<<2)+vf>>2];wf=wf+1|0;if((xf|0)!=(wf|0)){continue}break}}if((yf|0)<1){break e}wf=0;while(1){ea=wf<<2;yf=p[ea+If>>2];zf=p[Ef>>2];g:{if((yf|0)>(zf|0)){Af=p[Ff>>2];p[ea+Af>>2]=zf;break g}Af=p[Ff>>2];ea=ea+Af|0;zf=p[Jf>>2];if((yf|0)<(zf|0)){p[ea>>2]=zf;break g}p[ea>>2]=yf}wf=wf+1|0;yf=p[Gf>>2];if((wf|0)<(yf|0)){continue}break}zf=0;if((yf|0)<1){break e}ea=Hf<<2;Hf=ea+vf|0;Cf=ea+bf|0;while(1){wf=zf<<2;ea=wf+Hf|0;wf=p[wf+Cf>>2]+p[wf+Af>>2]|0;p[ea>>2]=wf;h:{if((wf|0)>p[Ef>>2]){wf=wf-p[Df>>2]|0}else{if((wf|0)>=p[Jf>>2]){break h}wf=wf+p[Df>>2]|0}p[ea>>2]=wf}zf=zf+1|0;yf=p[Gf>>2];if((zf|0)<(yf|0)){continue}break}break e}Qg();E()}if((yf|0)<1){break e}zf=(v(Bf+ -1|0,xf)<<2)+vf|0;wf=0;while(1){ea=wf<<2;yf=p[ea+zf>>2];Cf=p[Ef>>2];i:{if((yf|0)>(Cf|0)){Af=p[Ff>>2];p[ea+Af>>2]=Cf;break i}Af=p[Ff>>2];ea=ea+Af|0;Cf=p[Jf>>2];if((yf|0)<(Cf|0)){p[ea>>2]=Cf;break i}p[ea>>2]=yf}wf=wf+1|0;yf=p[Gf>>2];if((wf|0)<(yf|0)){continue}break}zf=0;if((yf|0)<1){break e}ea=Hf<<2;Hf=ea+vf|0;Cf=ea+bf|0;while(1){wf=zf<<2;ea=wf+Hf|0;wf=p[wf+Cf>>2]+p[wf+Af>>2]|0;p[ea>>2]=wf;j:{if((wf|0)>p[Ef>>2]){wf=wf-p[Df>>2]|0}else{if((wf|0)>=p[Jf>>2]){break j}wf=wf+p[Df>>2]|0}p[ea>>2]=wf}zf=zf+1|0;yf=p[Gf>>2];if((zf|0)<(yf|0)){continue}break}}Bf=Bf+1|0;if((Bf|0)<(Mf|0)){continue}break}}rh(If);return 1}function xc(ea){ea=ea|0;var bf=0;p[ea>>2]=2884;bf=p[ea+32>>2];if(bf){p[ea+36>>2]=bf;rh(bf)}return ea|0}function yc(ea,vf,wf,xf,yf,Pf){ea=ea|0;vf=vf|0;wf=wf|0;xf=xf|0;yf=yf|0;Pf=Pf|0;var Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0;p[ea+8>>2]=yf;Pf=ea+32|0;Qf=p[Pf>>2];xf=p[ea+36>>2]-Qf>>2;a:{if(xf>>>0>>0){vb(Pf,yf-xf|0);break a}if(xf>>>0<=yf>>>0){break a}p[ea+36>>2]=Qf+(yf<<2)}Pf=0;xf=(yf&1073741823)!=(yf|0)?-1:yf<<2;Zf=uh(Bg(xf),0,xf);cg=uh(Bg(xf),0,xf);Wf=ea+8|0;Qf=p[Wf>>2];b:{if((Qf|0)<1){break b}Xf=ea+16|0;xf=ea+32|0;Yf=ea+12|0;while(1){Qf=Pf<<2;Tf=p[Qf+Zf>>2];Vf=p[Xf>>2];c:{if((Tf|0)>(Vf|0)){Sf=p[xf>>2];p[Qf+Sf>>2]=Vf;break c}Sf=p[xf>>2];Qf=Qf+Sf|0;Vf=p[Yf>>2];if((Tf|0)<(Vf|0)){p[Qf>>2]=Vf;break c}p[Qf>>2]=Tf}Pf=Pf+1|0;Qf=p[Wf>>2];if((Pf|0)<(Qf|0)){continue}break}if((Qf|0)<1){break b}xf=0;Wf=ea+16|0;Tf=ea+20|0;Xf=ea+8|0;Yf=ea+12|0;while(1){Qf=xf<<2;Pf=Qf+wf|0;Qf=p[vf+Qf>>2]+p[Qf+Sf>>2]|0;p[Pf>>2]=Qf;d:{if((Qf|0)>p[Wf>>2]){Qf=Qf-p[Tf>>2]|0}else{if((Qf|0)>=p[Yf>>2]){break d}Qf=Qf+p[Tf>>2]|0}p[Pf>>2]=Qf}xf=xf+1|0;Qf=p[Xf>>2];if((xf|0)<(Qf|0)){continue}break}}xf=p[ea+56>>2];dg=p[xf>>2];xf=p[xf+4>>2]-dg|0;if((xf|0)>=5){eg=xf>>2;gg=yf<<2;hg=p[ea+52>>2];Wf=ea+16|0;Xf=ea+32|0;Yf=ea+8|0;Vf=ea+20|0;ag=ea+12|0;_f=p[ea+48>>2];ig=_f+28|0;Tf=1;while(1){e:{f:{g:{if(eg>>>0>Tf>>>0){ea=p[(Tf<<2)+dg>>2];fg=(yf|0)<1;if(!fg){uh(Zf,0,gg)}if((ea|0)==-1){ea=v(yf,Tf);break f}jg=p[_f>>2];Sf=0;xf=ea;while(1){h:{if(p[jg+(xf>>>3&536870908)>>2]>>>(xf&31)&1){break h}Pf=p[p[p[_f+64>>2]+12>>2]+(xf<<2)>>2];if((Pf|0)==-1){break h}Uf=p[hg>>2];Rf=p[ig>>2];bg=p[Uf+(p[Rf+(Pf<<2)>>2]<<2)>>2];if((bg|0)>=(Tf|0)){break h}$f=Pf+1|0;$f=p[Uf+(p[Rf+((($f>>>0)%3|0?$f:Pf+ -2|0)<<2)>>2]<<2)>>2];if(($f|0)>=(Tf|0)){break h}Pf=p[Uf+(p[Rf+(Pf+((Pf>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((Pf|0)>=(Tf|0)){break h}i:{if(fg){break i}Rf=v(yf,Pf);Uf=v(yf,$f);bg=v(yf,bg);Pf=0;while(1){p[cg+(Pf<<2)>>2]=(p[(Pf+Rf<<2)+wf>>2]+p[(Pf+Uf<<2)+wf>>2]|0)-p[(Pf+bg<<2)+wf>>2];Pf=Pf+1|0;if((Pf|0)!=(yf|0)){continue}break}Pf=0;if((yf|0)<=0){break i}while(1){Rf=Pf<<2;Uf=Rf+Zf|0;p[Uf>>2]=p[Uf>>2]+p[Rf+cg>>2];Pf=Pf+1|0;if((Pf|0)!=(yf|0)){continue}break}}Sf=Sf+1|0}Pf=-1;xf=((xf>>>0)%3|0?-1:2)+xf|0;j:{if((xf|0)==-1|p[p[_f>>2]+(xf>>>3&536870908)>>2]>>>(xf&31)&1){break j}xf=p[p[p[_f+64>>2]+12>>2]+(xf<<2)>>2];if((xf|0)==-1){break j}if((xf>>>0)%3){Pf=xf+ -1|0;break j}Pf=xf+2|0}xf=(ea|0)==(Pf|0)?-1:Pf;if((xf|0)!=-1){continue}break}ea=v(yf,Tf);if(!Sf){break f}Pf=0;if((yf|0)<=0){break g}while(1){xf=(Pf<<2)+Zf|0;p[xf>>2]=p[xf>>2]/(Sf|0);Pf=Pf+1|0;if((Pf|0)!=(yf|0)){continue}break}break g}Qg();E()}if((Qf|0)<1){break e}Pf=0;while(1){xf=Pf<<2;Qf=p[xf+Zf>>2];Rf=p[Wf>>2];k:{if((Qf|0)>(Rf|0)){Sf=p[Xf>>2];p[xf+Sf>>2]=Rf;break k}Sf=p[Xf>>2];xf=xf+Sf|0;Rf=p[ag>>2];if((Qf|0)<(Rf|0)){p[xf>>2]=Rf;break k}p[xf>>2]=Qf}Pf=Pf+1|0;Qf=p[Yf>>2];if((Pf|0)<(Qf|0)){continue}break}xf=0;if((Qf|0)<1){break e}ea=ea<<2;Rf=ea+wf|0;Uf=ea+vf|0;while(1){Pf=xf<<2;ea=Pf+Rf|0;Pf=p[Pf+Uf>>2]+p[Pf+Sf>>2]|0;p[ea>>2]=Pf;l:{if((Pf|0)>p[Wf>>2]){Pf=Pf-p[Vf>>2]|0}else{if((Pf|0)>=p[ag>>2]){break l}Pf=Pf+p[Vf>>2]|0}p[ea>>2]=Pf}xf=xf+1|0;Qf=p[Yf>>2];if((xf|0)<(Qf|0)){continue}break}break e}if((Qf|0)<1){break e}Rf=(v(Tf+ -1|0,yf)<<2)+wf|0;Pf=0;while(1){xf=Pf<<2;Qf=p[xf+Rf>>2];Uf=p[Wf>>2];m:{if((Qf|0)>(Uf|0)){Sf=p[Xf>>2];p[xf+Sf>>2]=Uf;break m}Sf=p[Xf>>2];xf=xf+Sf|0;Uf=p[ag>>2];if((Qf|0)<(Uf|0)){p[xf>>2]=Uf;break m}p[xf>>2]=Qf}Pf=Pf+1|0;Qf=p[Yf>>2];if((Pf|0)<(Qf|0)){continue}break}xf=0;if((Qf|0)<1){break e}ea=ea<<2;Rf=ea+wf|0;Uf=ea+vf|0;while(1){Pf=xf<<2;ea=Pf+Rf|0;Pf=p[Pf+Uf>>2]+p[Pf+Sf>>2]|0;p[ea>>2]=Pf;n:{if((Pf|0)>p[Wf>>2]){Pf=Pf-p[Vf>>2]|0}else{if((Pf|0)>=p[ag>>2]){break n}Pf=Pf+p[Vf>>2]|0}p[ea>>2]=Pf}xf=xf+1|0;Qf=p[Yf>>2];if((xf|0)<(Qf|0)){continue}break}}Tf=Tf+1|0;if((Tf|0)<(eg|0)){continue}break}}rh(cg);rh(Zf);return 1}function zc(ea){ea=ea|0;var vf=0;p[ea>>2]=3176;vf=p[ea+96>>2];if(vf){rh(vf)}vf=p[ea+84>>2];if(vf){rh(vf)}vf=p[ea+72>>2];if(vf){rh(vf)}vf=p[ea+60>>2];if(vf){rh(vf)}p[ea>>2]=2884;vf=p[ea+32>>2];if(vf){p[ea+36>>2]=vf;rh(vf)}return ea|0}function Ac(ea){ea=ea|0;var wf=0;p[ea>>2]=3176;wf=p[ea+96>>2];if(wf){rh(wf)}wf=p[ea+84>>2];if(wf){rh(wf)}wf=p[ea+72>>2];if(wf){rh(wf)}wf=p[ea+60>>2];if(wf){rh(wf)}p[ea>>2]=2884;wf=p[ea+32>>2];if(wf){p[ea+36>>2]=wf;rh(wf)}rh(ea)}function Bc(p){p=p|0;return 4}function Cc(ea,xf){ea=ea|0;xf=xf|0;var yf=0,Pf=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0;pg=S-32|0;S=pg;a:{if(r[xf+38>>1]<=513){kg=p[xf+16>>2];Pf=p[xf+12>>2];yf=p[xf+20>>2];if((Pf|0)<(yf|0)?1:(Pf|0)<=(yf|0)?s[xf+8>>2]>kg>>>0?0:1:0){break a}lg=q[kg+p[xf>>2]|0];kg=kg+1|0;if(kg>>>0<1){yf=yf+1|0}p[xf+16>>2]=kg;p[xf+20>>2]=yf;if(lg){break a}}b:{while(1){if(!Dc(1,pg+28|0,xf)){break b}yf=p[pg+28>>2];if(yf){lg=(v(mg,12)+ea|0)+60|0;Ec(lg,yf);og=le(pg+8|0);if(!me(og,xf)){break b}ng=0;while(1){Pf=1<<(ng&31);qg=oe(og);kg=p[lg>>2]+(ng>>>3&536870908)|0;rg=kg;if(qg){Pf=Pf|p[kg>>2]}else{Pf=p[kg>>2]&(Pf^-1)}p[rg>>2]=Pf;ng=ng+1|0;if((yf|0)!=(ng|0)){continue}break}}mg=mg+1|0;if((mg|0)!=4){continue}break}ng=0;Pf=p[xf+12>>2];kg=Pf;yf=p[xf+20>>2];mg=yf;og=p[xf+16>>2];lg=og+4|0;if(lg>>>0<4){yf=yf+1|0}rg=p[xf+8>>2];qg=lg;lg=yf;if((Pf|0)<(yf|0)?1:(Pf|0)<=(yf|0)?rg>>>0>=qg>>>0?0:1:0){break a}sg=p[xf>>2];yf=sg+og|0;Pf=q[yf|0]|q[yf+1|0]<<8|(q[yf+2|0]<<16|q[yf+3|0]<<24);p[xf+16>>2]=qg;p[xf+20>>2]=lg;yf=mg;mg=og+8|0;if(mg>>>0<8){yf=yf+1|0}lg=mg;mg=yf;if((kg|0)<(yf|0)?1:(kg|0)<=(yf|0)?rg>>>0>=lg>>>0?0:1:0){break a}yf=qg+sg|0;yf=q[yf|0]|q[yf+1|0]<<8|(q[yf+2|0]<<16|q[yf+3|0]<<24);p[xf+16>>2]=lg;p[xf+20>>2]=mg;if((Pf|0)>(yf|0)){break a}p[ea+16>>2]=yf;p[ea+12>>2]=Pf;xf=Pf;Pf=(yf>>31)-((yf>>>0>>0)+(xf>>31)|0)|0;xf=yf-xf|0;if(!Pf&xf>>>0>2147483646|Pf>>>0>0){break a}ng=1;xf=xf+1|0;p[ea+20>>2]=xf;Pf=ea+24|0;yf=(xf|0)/2|0;p[Pf>>2]=yf;p[ea+28>>2]=0-yf;if(xf&1){break a}p[Pf>>2]=yf+ -1;break a}ng=0}S=pg+32|0;return ng|0}function Dc(ea,xf,tg){var ug=0,vg=0,wg=0,xg=0;a:{if(ea>>>0>5){break a}wg=p[tg+16>>2];ug=p[tg+12>>2];vg=p[tg+20>>2];if((ug|0)<(vg|0)?1:(ug|0)<=(vg|0)?s[tg+8>>2]>wg>>>0?0:1:0){break a}ug=q[wg+p[tg>>2]|0];wg=wg+1|0;if(wg>>>0<1){vg=vg+1|0}p[tg+16>>2]=wg;p[tg+20>>2]=vg;vg=xf;if(ug&128){if(!Dc(ea+1|0,xf,tg)){break a}ea=p[xf>>2]<<7;p[xf>>2]=ea;ug=ea|ug&127}p[vg>>2]=ug;xg=1}return xg}function Ec(ea,xf){var tg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0;yg=S-32|0;S=yg;a:{tg=p[ea+4>>2];b:{if(tg>>>0>>0){Bg=p[ea+8>>2];zg=Bg<<5;Ag=xf-tg|0;c:{if(!(zg>>>0>>0|tg>>>0>zg-Ag>>>0)){p[ea+4>>2]=xf;xf=tg&31;ea=p[ea>>2]+(tg>>>3&536870908)|0;break c}p[yg+24>>2]=0;p[yg+16>>2]=0;p[yg+20>>2]=0;if((xf|0)<=-1){break a}tg=yg+16|0;if(zg>>>0<=1073741822){xf=xf+31&-32;zg=Bg<<6;xf=zg>>>0>>0?xf:zg}else{xf=2147483647}Gc(tg,xf);tg=p[ea+4>>2];p[yg+20>>2]=tg+Ag;xf=p[yg+16>>2];d:{if((tg|0)<1){tg=0;break d}Bg=p[ea>>2];zg=tg>>>5<<2;xf=vh(xf,Bg,zg)+zg|0;tg=tg&31;if(!tg){tg=0;break d}Cg=-1>>>32-tg;p[xf>>2]=p[xf>>2]&(Cg^-1)|p[zg+Bg>>2]&Cg}p[yg+12>>2]=tg;p[yg+8>>2]=xf;tg=p[yg+8>>2];xf=p[yg+12>>2];zg=p[ea>>2];p[ea>>2]=p[yg+16>>2];p[yg+16>>2]=zg;Bg=p[ea+4>>2];p[ea+4>>2]=p[yg+20>>2];p[yg+20>>2]=Bg;ea=ea+8|0;Bg=p[ea>>2];p[ea>>2]=p[yg+24>>2];p[yg+24>>2]=Bg;if(zg){rh(zg)}ea=tg}if(!Ag){break b}if(xf){tg=32-xf|0;zg=tg>>>0>Ag>>>0?Ag:tg;p[ea>>2]=p[ea>>2]&(-1<>>tg-zg^-1);Ag=Ag-zg|0;ea=ea+4|0}xf=ea;ea=Ag>>>5<<2;xf=uh(xf,0,ea);tg=Ag&31;if(!tg){break b}ea=ea+xf|0;p[ea>>2]=p[ea>>2]&(-1>>>32-tg^-1);break b}p[ea+4>>2]=xf}S=yg+32|0;return}Pg();E()}function Fc(ea,xf,Dg,Eg,Fg,Gg){ea=ea|0;xf=xf|0;Dg=Dg|0;Eg=Eg|0;Fg=Fg|0;Gg=Gg|0;var Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0;Jg=S+ -64|0;S=Jg;p[ea+8>>2]=Fg;Gg=ea+32|0;Kg=p[Gg>>2];Eg=p[ea+36>>2]-Kg>>2;a:{if(Eg>>>0>>0){vb(Gg,Fg-Eg|0);break a}if(Eg>>>0<=Fg>>>0){break a}p[ea+36>>2]=Kg+(Fg<<2)}p[Jg+56>>2]=0;p[Jg+60>>2]=0;p[Jg+48>>2]=0;p[Jg+52>>2]=0;p[Jg+40>>2]=0;p[Jg+44>>2]=0;Gg=Jg+32|0;p[Gg>>2]=0;p[Gg+4>>2]=0;p[Jg+24>>2]=0;p[Jg+28>>2]=0;p[Jg+16>>2]=0;p[Jg+20>>2]=0;p[Jg>>2]=0;Eg=0;if(Fg){wb(Jg+16|0,Fg,Jg);Ig=p[Jg+28>>2];Eg=p[Gg>>2]}p[Jg>>2]=0;Eg=Eg-Ig>>2;b:{if(Eg>>>0>=Fg>>>0){if(Eg>>>0<=Fg>>>0){break b}p[Jg+32>>2]=(Fg<<2)+Ig;break b}wb(Jg+16|12,Fg-Eg|0,Jg)}p[Jg>>2]=0;Gg=p[Jg+40>>2];Eg=p[Jg+44>>2]-Gg>>2;c:{if(Eg>>>0>=Fg>>>0){if(Eg>>>0<=Fg>>>0){break c}p[Jg+44>>2]=Gg+(Fg<<2);break c}wb(Jg+40|0,Fg-Eg|0,Jg)}p[Jg>>2]=0;Gg=p[Jg+52>>2];Eg=p[Jg+56>>2]-Gg>>2;d:{if(Eg>>>0>=Fg>>>0){if(Eg>>>0<=Fg>>>0){break d}p[Jg+56>>2]=Gg+(Fg<<2);break d}wb(Jg+52|0,Fg-Eg|0,Jg)}Mg=ea+8|0;e:{if(p[Mg>>2]<=0){break e}Ng=p[Jg+16>>2];Ig=0;Rg=ea+16|0;Eg=ea+32|0;Lg=ea+12|0;while(1){Gg=Ig<<2;Hg=p[Gg+Ng>>2];Sg=p[Rg>>2];f:{if((Hg|0)>(Sg|0)){Kg=p[Eg>>2];p[Gg+Kg>>2]=Sg;break f}Kg=p[Eg>>2];Gg=Gg+Kg|0;Sg=p[Lg>>2];if((Hg|0)<(Sg|0)){p[Gg>>2]=Sg;break f}p[Gg>>2]=Hg}Ig=Ig+1|0;Gg=p[Mg>>2];if((Ig|0)<(Gg|0)){continue}break}if((Gg|0)<1){break e}Eg=0;Mg=ea+16|0;Ig=ea+20|0;Ng=ea+8|0;Rg=ea+12|0;while(1){Hg=Eg<<2;Gg=Hg+Dg|0;Hg=p[xf+Hg>>2]+p[Hg+Kg>>2]|0;p[Gg>>2]=Hg;g:{if((Hg|0)>p[Mg>>2]){Hg=Hg-p[Ig>>2]|0}else{if((Hg|0)>=p[Rg>>2]){break g}Hg=Hg+p[Ig>>2]|0}p[Gg>>2]=Hg}Eg=Eg+1|0;if((Eg|0)>2]){continue}break}}eh=p[ea+52>>2];Ng=p[ea+48>>2];_g=Bg(16);Eg=_g;p[Eg>>2]=0;p[Eg+4>>2]=0;p[Eg+8>>2]=0;p[Eg+12>>2]=0;p[Jg+8>>2]=0;p[Jg>>2]=0;p[Jg+4>>2]=0;h:{if(Fg){if(Fg>>>0>=1073741824){break h}Eg=Fg<<2;Wg=Bg(Eg);p[Jg>>2]=Wg;Gg=Eg+Wg|0;p[Jg+8>>2]=Gg;uh(Wg,0,Eg);p[Jg+4>>2]=Gg}Eg=1;Gg=p[ea+56>>2];ch=p[Gg>>2];Gg=p[Gg+4>>2]-ch|0;i:{if((Gg|0)<5){break i}dh=Gg>>2;fh=Fg<<2;Rg=ea+8|0;Sg=ea+16|0;Xg=ea+32|0;Yg=ea+20|0;Zg=ea+12|0;gh=Ng+28|0;Mg=1;while(1){j:{k:{l:{if(dh>>>0>Mg>>>0){m:{n:{Kg=p[(Mg<<2)+ch>>2];if((Kg|0)==-1){break n}Og=Kg+((Kg>>>0)%3|0?-1:2)|0;$g=Og>>>5;Lg=1;ah=1<<(Og&31);bh=p[Ng>>2];Gg=0;Eg=Kg;o:{while(1){p:{if(p[bh+(Eg>>>3&536870908)>>2]>>>(Eg&31)&1){break p}Hg=p[p[p[Ng+64>>2]+12>>2]+(Eg<<2)>>2];if((Hg|0)==-1){break p}Ug=p[eh>>2];Ig=p[gh>>2];Vg=p[Ug+(p[Ig+(Hg<<2)>>2]<<2)>>2];if((Vg|0)>=(Mg|0)){break p}Tg=Hg+1|0;Tg=p[Ug+(p[Ig+(((Tg>>>0)%3|0?Tg:Hg+ -2|0)<<2)>>2]<<2)>>2];if((Tg|0)>=(Mg|0)){break p}Hg=p[Ug+(p[Ig+(Hg+((Hg>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((Hg|0)>=(Mg|0)){break p}if((Fg|0)>=1){Ug=p[(Jg+16|0)+v(Gg,12)>>2];Hg=v(Fg,Hg);Tg=v(Fg,Tg);Vg=v(Fg,Vg);Ig=0;while(1){p[Ug+(Ig<<2)>>2]=(p[(Hg+Ig<<2)+Dg>>2]+p[(Ig+Tg<<2)+Dg>>2]|0)-p[(Ig+Vg<<2)+Dg>>2];Ig=Ig+1|0;if((Ig|0)!=(Fg|0)){continue}break}}Hg=4;Gg=Gg+1|0;if((Gg|0)==4){break o}}q:{if(Lg&1){Ig=-1;Hg=Eg+1|0;Eg=(Hg>>>0)%3|0?Hg:Eg+ -2|0;if((Eg|0)==-1|p[p[Ng>>2]+(Eg>>>3&536870908)>>2]>>>(Eg&31)&1){break q}Eg=p[p[p[Ng+64>>2]+12>>2]+(Eg<<2)>>2];if((Eg|0)==-1){break q}Hg=Eg+1|0;Ig=(Hg>>>0)%3|0?Hg:Eg+ -2|0;break q}Ig=-1;Eg=((Eg>>>0)%3|0?-1:2)+Eg|0;if((Eg|0)==-1|p[p[Ng>>2]+(Eg>>>3&536870908)>>2]>>>(Eg&31)&1){break q}Eg=p[p[p[Ng+64>>2]+12>>2]+(Eg<<2)>>2];if((Eg|0)==-1){break q}if((Eg>>>0)%3){Ig=Eg+ -1|0;break q}Ig=Eg+2|0}r:{if((Ig|0)==(Kg|0)){break r}Eg=Ig;Hg=(Ig|0)!=-1;Ig=(Hg|Lg^-1)&1;Eg=Ig?Eg:-1;Lg=Hg&Lg;if(!((Og|0)==-1|Ig)){if(p[p[Ng>>2]+($g<<2)>>2]&ah){break r}Hg=p[p[p[Ng+64>>2]+12>>2]+(Og<<2)>>2];if((Hg|0)==-1){break r}Lg=0;if((Hg>>>0)%3){Eg=Hg+ -1|0}else{Eg=Hg+2|0}}if((Eg|0)!=-1){continue}}break}Hg=Gg;if((Hg|0)<1){break n}}Og=(Fg|0)<1;if(!Og){uh(Wg,0,fh)}Eg=Hg+ -1|0;Lg=(Eg<<2)+_g|0;Eg=v(Eg,12)+ea|0;Ug=Eg+60|0;$g=p[Eg- -64>>2];Eg=0;ah=p[Jg>>2];Kg=0;Gg=0;while(1){Ig=p[Lg>>2];p[Lg>>2]=Ig+1;if($g>>>0<=Ig>>>0){break i}s:{if(p[p[Ug>>2]+(Ig>>>3&536870908)>>2]>>>(Ig&31)&1){break s}Gg=Gg+1|0;if(Og){break s}bh=p[(Jg+16|0)+v(Kg,12)>>2];Ig=0;while(1){Vg=Ig<<2;Tg=Vg+ah|0;p[Tg>>2]=p[Tg>>2]+p[Vg+bh>>2];Ig=Ig+1|0;if((Ig|0)!=(Fg|0)){continue}break}}Kg=Kg+1|0;if((Hg|0)!=(Kg|0)){continue}break}Lg=v(Fg,Mg);Hg=Lg;if(!Gg){break m}Ig=0;if((Fg|0)>0){break l}break k}Hg=v(Fg,Mg)}if(p[Rg>>2]<1){break j}Lg=(v(Mg+ -1|0,Fg)<<2)+Dg|0;Ig=0;while(1){Eg=Ig<<2;Gg=p[Eg+Lg>>2];Og=p[Sg>>2];t:{if((Gg|0)>(Og|0)){Kg=p[Xg>>2];p[Eg+Kg>>2]=Og;break t}Kg=p[Xg>>2];Eg=Eg+Kg|0;Og=p[Zg>>2];if((Gg|0)<(Og|0)){p[Eg>>2]=Og;break t}p[Eg>>2]=Gg}Ig=Ig+1|0;Gg=p[Rg>>2];if((Ig|0)<(Gg|0)){continue}break}Eg=0;if((Gg|0)<1){break j}Gg=Hg<<2;Ig=Gg+Dg|0;Lg=xf+Gg|0;while(1){Hg=Eg<<2;Gg=Hg+Ig|0;Hg=p[Hg+Lg>>2]+p[Hg+Kg>>2]|0;p[Gg>>2]=Hg;u:{if((Hg|0)>p[Sg>>2]){Hg=Hg-p[Yg>>2]|0}else{if((Hg|0)>=p[Zg>>2]){break u}Hg=Hg+p[Yg>>2]|0}p[Gg>>2]=Hg}Eg=Eg+1|0;if((Eg|0)>2]){continue}break}break j}Qg();E()}while(1){Eg=(Ig<<2)+Wg|0;p[Eg>>2]=p[Eg>>2]/(Gg|0);Ig=Ig+1|0;if((Ig|0)!=(Fg|0)){continue}break}}if(p[Rg>>2]<1){break j}Ig=0;while(1){Eg=Ig<<2;Gg=p[Eg+Wg>>2];Hg=p[Sg>>2];v:{if((Gg|0)>(Hg|0)){Kg=p[Xg>>2];p[Eg+Kg>>2]=Hg;break v}Kg=p[Xg>>2];Eg=Eg+Kg|0;Hg=p[Zg>>2];if((Gg|0)<(Hg|0)){p[Eg>>2]=Hg;break v}p[Eg>>2]=Gg}Ig=Ig+1|0;Gg=p[Rg>>2];if((Ig|0)<(Gg|0)){continue}break}Eg=0;if((Gg|0)<1){break j}Gg=Lg<<2;Ig=Gg+Dg|0;Lg=xf+Gg|0;while(1){Hg=Eg<<2;Gg=Hg+Ig|0;Hg=p[Hg+Lg>>2]+p[Hg+Kg>>2]|0;p[Gg>>2]=Hg;w:{if((Hg|0)>p[Sg>>2]){Hg=Hg-p[Yg>>2]|0}else{if((Hg|0)>=p[Zg>>2]){break w}Hg=Hg+p[Yg>>2]|0}p[Gg>>2]=Hg}Eg=Eg+1|0;if((Eg|0)>2]){continue}break}}Eg=1;Mg=Mg+1|0;if((Mg|0)<(dh|0)){continue}break}}ea=p[Jg>>2];if(ea){p[Jg+4>>2]=ea;rh(ea)}rh(_g);ea=p[Jg+52>>2];if(ea){p[Jg+56>>2]=ea;rh(ea)}ea=p[Jg+40>>2];if(ea){p[Jg+44>>2]=ea;rh(ea)}ea=p[Jg+28>>2];if(ea){p[Jg+32>>2]=ea;rh(ea)}ea=p[Jg+16>>2];if(ea){p[Jg+20>>2]=ea;rh(ea)}S=Jg- -64|0;return Eg|0}Pg();E()}function Gc(ea,xf){var Dg=0,Eg=0;Dg=S-32|0;S=Dg;a:{b:{if(p[ea+8>>2]<<5>>>0>=xf>>>0){break b}p[Dg+24>>2]=0;p[Dg+16>>2]=0;p[Dg+20>>2]=0;if((xf|0)<=-1){break a}xf=(xf+ -1>>>5)+1|0;Eg=Bg(xf<<2);p[Dg+24>>2]=xf;p[Dg+20>>2]=0;p[Dg+16>>2]=Eg;xf=p[ea>>2];p[Dg+12>>2]=0;p[Dg+8>>2]=xf;Eg=p[ea+4>>2];p[Dg+4>>2]=Eg&31;p[Dg>>2]=xf+(Eg>>>3&536870908);Hc(Dg+16|0,Dg+8|0,Dg);xf=p[ea>>2];p[ea>>2]=p[Dg+16>>2];p[Dg+16>>2]=xf;Eg=p[ea+4>>2];p[ea+4>>2]=p[Dg+20>>2];p[Dg+20>>2]=Eg;ea=ea+8|0;Eg=p[ea>>2];p[ea>>2]=p[Dg+24>>2];p[Dg+24>>2]=Eg;if(!xf){break b}rh(xf)}S=Dg+32|0;return}Pg();E()}function Hc(ea,xf,Fg){var Gg=0,Pg=0,Qg=0,hh=0,ih=0,jh=0;Qg=S-32|0;S=Qg;ih=p[Fg+4>>2];Gg=p[xf+4>>2];jh=p[Fg>>2];hh=p[xf>>2];xf=(ih-Gg|0)+(jh-hh<<3)|0;Fg=p[ea+4>>2];Pg=xf+Fg|0;p[ea+4>>2]=Pg;a:{if(!(!Fg|(Pg+ -1^Fg+ -1)>>>0>31)){ea=p[ea>>2];break a}ea=p[ea>>2];if(Pg>>>0<=32){p[ea>>2]=0;break a}p[(Pg+ -1>>>3&536870908)+ea>>2]=0}ea=(Fg>>>3&536870908)+ea|0;Fg=Fg&31;b:{if((Fg|0)==(Gg|0)){c:{if((xf|0)<1){break c}d:{if(!Gg){Fg=0;break d}Pg=32-Gg|0;Fg=(xf|0)<(Pg|0)?xf:Pg;Pg=-1<>>Pg-Fg;p[ea>>2]=p[ea>>2]&(Pg^-1)|Pg&p[hh>>2];xf=xf-Fg|0;Gg=Fg+Gg|0;Fg=Gg&31;ea=(Gg>>>3&536870908)+ea|0;hh=hh+4|0}Gg=(xf|0)/32|0;Pg=Gg<<2;ea=vh(ea,hh,Pg)+Pg|0;Gg=xf-(Gg<<5)|0;if((Gg|0)<1){Gg=Fg;break c}xf=-1>>>32-Gg;p[ea>>2]=p[ea>>2]&(xf^-1)|xf&p[Pg+hh>>2]}p[Qg+4>>2]=Gg;p[Qg>>2]=ea;break b}p[Qg+28>>2]=Gg;p[Qg+24>>2]=hh;p[Qg+20>>2]=ih;p[Qg+16>>2]=jh;p[Qg+12>>2]=Fg;p[Qg+8>>2]=ea;Ic(Qg,Qg+24|0,Qg+16|0,Qg+8|0)}S=Qg+32|0}function Ic(ea,xf,Fg,kh){var lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0;mh=p[xf>>2];lh=p[Fg+4>>2]+(p[Fg>>2]-mh<<3)|0;Fg=p[xf+4>>2];nh=lh-Fg|0;a:{if((nh|0)<=0){Fg=p[kh+4>>2];break a}b:{if(!Fg){Fg=p[kh+4>>2];break b}lh=p[kh+4>>2];qh=32-lh|0;rh=32-Fg|0;oh=(nh|0)<(rh|0)?nh:rh;ph=qh>>>0>>0?qh:oh;sh=p[kh>>2];mh=p[mh>>2]&(-1<>>rh-oh);p[sh>>2]=p[sh>>2]&(-1<>>qh-ph^-1)|(lh>>>0>Fg>>>0?mh<>>Fg-lh);lh=lh+ph|0;Fg=lh&31;p[kh+4>>2]=Fg;qh=sh+(lh>>>3&536870908)|0;p[kh>>2]=qh;lh=oh-ph|0;if((lh|0)>=1){p[qh>>2]=p[qh>>2]&(-1>>>32-lh^-1)|mh>>>ph+p[xf+4>>2];p[kh+4>>2]=lh;Fg=lh}nh=nh-oh|0;mh=p[xf>>2]+4|0;p[xf>>2]=mh}ph=-1<>2];mh=p[mh>>2];p[lh>>2]=qh&p[lh>>2]|mh<>2]=lh+4;p[lh+4>>2]=ph&p[lh+4>>2]|mh>>>oh;mh=p[xf>>2]+4|0;p[xf>>2]=mh;rh=(nh|0)>63;lh=nh+ -32|0;nh=lh;if(rh){continue}break}}if((lh|0)<1){break a}xf=p[kh>>2];nh=(oh|0)<(lh|0)?oh:lh;ph=p[xf>>2]&(ph&-1>>>oh-nh^-1);oh=p[mh>>2]&-1>>>32-lh;p[xf>>2]=ph|oh<>2]=Fg;mh=xf+(mh>>>3&536870908)|0;p[kh>>2]=mh;xf=lh-nh|0;if((xf|0)<1){break a}p[mh>>2]=p[mh>>2]&(-1>>>32-xf^-1)|oh>>>nh;p[kh+4>>2]=xf;Fg=xf}xf=p[kh>>2];p[ea+4>>2]=Fg;p[ea>>2]=xf}function Jc(ea){ea=ea|0;var xf=0,Fg=0;p[ea>>2]=3424;xf=p[ea+76>>2];if(xf){rh(xf)}Fg=ea+68|0;xf=p[Fg>>2];p[Fg>>2]=0;if(xf){rh(xf)}p[ea>>2]=2884;xf=p[ea+32>>2];if(xf){p[ea+36>>2]=xf;rh(xf)}return ea|0}function Kc(ea){ea=ea|0;var kh=0,th=0;p[ea>>2]=3424;kh=p[ea+76>>2];if(kh){rh(kh)}th=ea+68|0;kh=p[th>>2];p[th>>2]=0;if(kh){rh(kh)}p[ea>>2]=2884;kh=p[ea+32>>2];if(kh){p[ea+36>>2]=kh;rh(kh)}rh(ea)}function Lc(p){p=p|0;return 3}function Mc(ea){ea=ea|0;if(!(!p[ea+60>>2]|!p[ea+44>>2]|(!p[ea+48>>2]|!p[ea+52>>2]))){return p[ea+56>>2]!=0|0}return 0}function Nc(ea,uh){ea=ea|0;uh=uh|0;var vh=0;if(!(p[uh+56>>2]|!uh|q[uh+24|0]!=3)){p[ea+60>>2]=uh;vh=1}return vh|0}function Oc(ea,uh){ea=ea|0;uh=uh|0;var wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0;Ch=S-32|0;S=Ch;p[Ch+28>>2]=0;a:{b:{if(r[uh+38>>1]<=513){Ah=p[uh+12>>2];wh=p[uh+20>>2];yh=p[uh+16>>2];xh=yh+4|0;if(xh>>>0<4){wh=wh+1|0}zh=xh;xh=wh;if((Ah|0)<(wh|0)?1:(Ah|0)<=(wh|0)?s[uh+8>>2]>=zh>>>0?0:1:0){break a}wh=yh+p[uh>>2]|0;wh=q[wh|0]|q[wh+1|0]<<8|(q[wh+2|0]<<16|q[wh+3|0]<<24);p[Ch+28>>2]=wh;p[uh+16>>2]=zh;p[uh+20>>2]=xh;break b}if(!Dc(1,Ch+28|0,uh)){break a}wh=p[Ch+28>>2]}if(!wh){break a}zh=ea+76|0;Ec(zh,wh);Eh=le(Ch+8|0);c:{if(!me(Eh,uh)){break c}Ah=1;while(1){yh=1<<(Dh&31);Bh=oe(Eh);xh=p[zh>>2]+(Dh>>>3&536870908)|0;Ah=Ah^Bh;Bh=p[xh>>2]|yh;d:{if(!(Ah&1)){break d}Bh=p[xh>>2]&(yh^-1)}yh=Bh;Ah=Ah^1;p[xh>>2]=yh;Dh=Dh+1|0;if((wh|0)!=(Dh|0)){continue}break}Dh=0;xh=p[uh+12>>2];Ah=xh;wh=p[uh+20>>2];yh=wh;Eh=p[uh+16>>2];zh=Eh+4|0;if(zh>>>0<4){wh=wh+1|0}Fh=p[uh+8>>2];Bh=zh;zh=wh;if((xh|0)<(wh|0)?1:(xh|0)<=(wh|0)?Fh>>>0>=Bh>>>0?0:1:0){break c}Gh=p[uh>>2];wh=Gh+Eh|0;xh=q[wh|0]|q[wh+1|0]<<8|(q[wh+2|0]<<16|q[wh+3|0]<<24);p[uh+16>>2]=Bh;p[uh+20>>2]=zh;wh=yh;yh=Eh+8|0;if(yh>>>0<8){wh=wh+1|0}zh=yh;yh=wh;if((Ah|0)<(wh|0)?1:(Ah|0)<=(wh|0)?Fh>>>0>=zh>>>0?0:1:0){break c}wh=Bh+Gh|0;wh=q[wh|0]|q[wh+1|0]<<8|(q[wh+2|0]<<16|q[wh+3|0]<<24);p[uh+16>>2]=zh;p[uh+20>>2]=yh;if((xh|0)>(wh|0)){break c}p[ea+16>>2]=wh;p[ea+12>>2]=xh;uh=xh;xh=(wh>>31)-((wh>>>0>>0)+(uh>>31)|0)|0;uh=wh-uh|0;if(!xh&uh>>>0>2147483646|xh>>>0>0){break c}Dh=1;uh=uh+1|0;p[ea+20>>2]=uh;xh=ea+24|0;wh=(uh|0)/2|0;p[xh>>2]=wh;p[ea+28>>2]=0-wh;if(uh&1){break c}p[xh>>2]=wh+ -1}}S=Ch+32|0;return Dh|0}function Pc(ea,uh,Hh,Ih,Jh,Kh){ea=ea|0;uh=uh|0;Hh=Hh|0;Ih=Ih|0;Jh=Jh|0;Kh=Kh|0;var Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0;p[ea+64>>2]=Kh;p[ea+72>>2]=Jh;Kh=Bg((Jh&1073741823)!=(Jh|0)?-1:Jh<<2);Ih=p[ea+68>>2];p[ea+68>>2]=Kh;if(Ih){rh(Ih)}p[ea+8>>2]=Jh;Kh=ea+32|0;Lh=p[Kh>>2];Ih=p[ea+36>>2]-Lh>>2;a:{if(Ih>>>0>>0){vb(Kh,Jh-Ih|0);break a}if(Ih>>>0<=Jh>>>0){break a}p[ea+36>>2]=Lh+(Jh<<2)}b:{Ih=p[ea+56>>2];Lh=p[Ih+4>>2];Kh=p[Ih>>2];Ih=Lh-Kh|0;if((Ih|0)<1){break b}if((Kh|0)!=(Lh|0)){Vh=Ih>>2;Ph=ea+8|0;Rh=ea+16|0;Sh=ea+32|0;Th=ea+20|0;Uh=ea+12|0;Wh=ea+56|0;while(1){Qc(ea,p[(Nh<<2)+Kh>>2],Hh,Nh);c:{if(p[Ph>>2]<1){break c}Qh=p[ea+68>>2];Kh=0;while(1){Ih=Kh<<2;Lh=p[Ih+Qh>>2];Mh=p[Rh>>2];d:{if((Lh|0)>(Mh|0)){Oh=p[Sh>>2];p[Ih+Oh>>2]=Mh;break d}Oh=p[Sh>>2];Ih=Ih+Oh|0;Mh=p[Uh>>2];if((Lh|0)<(Mh|0)){p[Ih>>2]=Mh;break d}p[Ih>>2]=Lh}Kh=Kh+1|0;Lh=p[Ph>>2];if((Kh|0)<(Lh|0)){continue}break}Ih=0;if((Lh|0)<1){break c}Kh=v(Jh,Nh)<<2;Qh=Kh+Hh|0;Mh=uh+Kh|0;while(1){Lh=Ih<<2;Kh=Lh+Qh|0;Lh=p[Lh+Mh>>2]+p[Lh+Oh>>2]|0;p[Kh>>2]=Lh;e:{if((Lh|0)>p[Rh>>2]){Lh=Lh-p[Th>>2]|0}else{if((Lh|0)>=p[Uh>>2]){break e}Lh=Lh+p[Th>>2]|0}p[Kh>>2]=Lh}Ih=Ih+1|0;if((Ih|0)>2]){continue}break}}Nh=Nh+1|0;if((Nh|0)>=(Vh|0)){break b}Ih=p[Wh>>2];Kh=p[Ih>>2];if(p[Ih+4>>2]-Kh>>2>>>0>Nh>>>0){continue}break}}Qg();E()}return 1}function Qc(ea,uh,Hh,Ih){var Jh=0,Kh=0,Xh=0,Yh=w(0),Zh=w(0),_h=w(0),$h=0,ai=w(0),bi=w(0),ci=w(0),di=w(0),ei=w(0),fi=0,gi=0,hi=w(0),ii=w(0),ji=w(0),ki=w(0),li=w(0),mi=w(0),ni=w(0),oi=w(0),pi=0;Jh=S-48|0;S=Jh;$h=-1;Kh=-1;a:{if((uh|0)==-1){break a}Kh=uh+1|0;$h=(Kh>>>0)%3|0?Kh:uh+ -2|0;Kh=uh+ -1|0;if((uh>>>0)%3){break a}Kh=uh+2|0}Xh=p[ea+52>>2];uh=p[Xh>>2];b:{Xh=p[Xh+4>>2]-uh>>2;fi=p[p[ea+48>>2]+28>>2];$h=p[fi+($h<<2)>>2];if(Xh>>>0<=$h>>>0){break b}pi=Xh;Xh=p[(Kh<<2)+fi>>2];if(pi>>>0<=Xh>>>0){break b}c:{d:{Kh=p[uh+($h<<2)>>2];fi=(Kh|0)>=(Ih|0);if(fi){break d}$h=p[uh+(Xh<<2)>>2];if(($h|0)>=(Ih|0)){break d}uh=p[ea+72>>2];Xh=(v(uh,$h)<<2)+Hh|0;Zh=w(p[Xh+4>>2]);uh=(v(uh,Kh)<<2)+Hh|0;ei=w(p[uh+4>>2]);hi=w(p[Xh>>2]);ki=w(p[uh>>2]);if(!(hi!=ki|Zh!=ei)){ea=p[ea+68>>2];uh=ea;if(w(x(Zh))>2]=Hh;if(w(x(hi))>2]=~~hi;break c}p[ea>>2]=-2147483648;break c}Ih=p[p[ea+64>>2]+(Ih<<2)>>2];p[Jh+40>>2]=0;p[Jh+32>>2]=0;p[Jh+36>>2]=0;uh=p[ea+60>>2];if(!q[uh+84|0]){Ih=p[p[uh+68>>2]+(Ih<<2)>>2]}na(uh,Ih,n[uh+24|0],Jh+32|0);Ih=p[p[ea+64>>2]+(Kh<<2)>>2];p[Jh+24>>2]=0;p[Jh+16>>2]=0;p[Jh+20>>2]=0;uh=p[ea+60>>2];if(!q[uh+84|0]){Ih=p[p[uh+68>>2]+(Ih<<2)>>2]}na(uh,Ih,n[uh+24|0],Jh+16|0);Hh=p[p[ea+64>>2]+($h<<2)>>2];p[Jh+8>>2]=0;p[Jh>>2]=0;p[Jh+4>>2]=0;uh=p[ea+60>>2];if(!q[uh+84|0]){Hh=p[p[uh+68>>2]+(Hh<<2)>>2]}na(uh,Hh,n[uh+24|0],Jh);ii=t[Jh+40>>2];ji=t[Jh+36>>2];ai=t[Jh+32>>2];mi=t[Jh+16>>2];_h=w(t[Jh>>2]-mi);ni=t[Jh+20>>2];bi=w(t[Jh+4>>2]-ni);oi=t[Jh+24>>2];ci=w(t[Jh+8>>2]-oi);li=w(w(w(w(_h*_h)+w(0))+w(bi*bi))+w(ci*ci));e:{if(!(li>w(0))){di=w(0);if(p[ea+88>>2]>257){break e}}ai=w(ai-mi);ji=w(ji-ni);ii=w(ii-oi);Yh=w(w(w(w(w(_h*ai)+w(0))+w(bi*ji))+w(ci*ii))/li);ci=w(ii-w(ci*Yh));bi=w(ji-w(bi*Yh));_h=w(ai-w(_h*Yh));di=w(D(w(w(w(ci*ci)+w(w(bi*bi)+w(w(_h*_h)+w(0))))/li)))}ai=di;Hh=ea+80|0;uh=p[Hh>>2]+ -1|0;Ih=p[p[ea+76>>2]+(uh>>>3&536870908)>>2];p[Hh>>2]=uh;_h=w(Zh-ei);di=w(w(_h*Yh)+ei);ei=w(hi-ki);Zh=w(ei*ai);uh=Ih>>>(uh&31)&1;Zh=w(di+(uh?Zh:w(-Zh)));di=w(w(ei*Yh)+ki);Yh=w(_h*ai);Yh=w(di+(uh?w(-Yh):Yh));f:{if(((j(Yh),e(0))&2147483647)>>>0>=2139095041){uh=p[ea+68>>2];p[uh>>2]=-2147483648;break f}uh=p[ea+68>>2];ea=uh;gi=B(+Yh+.5);g:{if(x(gi)<2147483648){Hh=~~gi;break g}Hh=-2147483648}p[ea>>2]=Hh}Hh=((j(Zh),e(0))&2147483647)>>>0>2139095040;gi=B(+Zh+.5);h:{if(x(gi)<2147483648){ea=~~gi;break h}ea=-2147483648}p[uh+4>>2]=Hh?-2147483648:ea;break c}i:{if(!fi){uh=p[ea+72>>2];Ih=v(Kh,uh);break i}if((Ih|0)<=0){if(p[ea+72>>2]<1){break c}Hh=p[ea+68>>2];uh=0;while(1){p[Hh+(uh<<2)>>2]=0;uh=uh+1|0;if((uh|0)>2]){continue}break}break c}uh=p[ea+72>>2];Ih=v(uh,Ih+ -1|0)}if((uh|0)<1){break c}Kh=p[ea+68>>2];uh=0;while(1){p[Kh+(uh<<2)>>2]=p[(uh+Ih<<2)+Hh>>2];uh=uh+1|0;if((uh|0)>2]){continue}break}}S=Jh+48|0;return}Qg();E()}function Rc(ea){ea=ea|0;var uh=0;p[ea>>2]=3652;uh=p[ea+76>>2];if(uh){rh(uh)}p[ea>>2]=2884;uh=p[ea+32>>2];if(uh){p[ea+36>>2]=uh;rh(uh)}return ea|0}function Sc(ea){ea=ea|0;var Hh=0;p[ea>>2]=3652;Hh=p[ea+76>>2];if(Hh){rh(Hh)}p[ea>>2]=2884;Hh=p[ea+32>>2];if(Hh){p[ea+36>>2]=Hh;rh(Hh)}rh(ea)}function Tc(p){p=p|0;return 5}function Uc(ea,Ih){ea=ea|0;Ih=Ih|0;var qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0;xi=S-16|0;S=xi;si=p[Ih+12>>2];qi=p[Ih+20>>2];ti=p[Ih+16>>2];ri=ti+4|0;if(ri>>>0<4){qi=qi+1|0}ui=ri;ri=qi;a:{if((si|0)<(qi|0)?1:(si|0)<=(qi|0)?s[Ih+8>>2]>=ui>>>0?0:1:0){break a}qi=ti+p[Ih>>2]|0;qi=q[qi|0]|q[qi+1|0]<<8|(q[qi+2|0]<<16|q[qi+3|0]<<24);p[Ih+16>>2]=ui;p[Ih+20>>2]=ri;if((qi|0)<0){break a}Ec(ea+76|0,qi);ui=le(xi);b:{if(!me(ui,Ih)){break b}if((qi|0)>=1){si=1;while(1){ti=1<<(wi&31);vi=oe(ui);ri=p[ea+76>>2]+(wi>>>3&536870908)|0;si=si^vi;vi=p[ri>>2]|ti;c:{if(!(si&1)){break c}vi=p[ri>>2]&(ti^-1)}ti=vi;si=si^1;p[ri>>2]=ti;wi=wi+1|0;if((qi|0)!=(wi|0)){continue}break}}ri=p[Ih+12>>2];wi=ri;qi=p[Ih+20>>2];si=qi;ui=p[Ih+16>>2];ti=ui+4|0;if(ti>>>0<4){qi=qi+1|0}yi=p[Ih+8>>2];vi=ti;ti=qi;if((ri|0)<(qi|0)?1:(ri|0)<=(qi|0)?yi>>>0>=vi>>>0?0:1:0){break b}zi=p[Ih>>2];qi=zi+ui|0;ri=q[qi|0]|q[qi+1|0]<<8|(q[qi+2|0]<<16|q[qi+3|0]<<24);p[Ih+16>>2]=vi;p[Ih+20>>2]=ti;qi=si;si=ui+8|0;if(si>>>0<8){qi=qi+1|0}ti=si;si=qi;if((wi|0)<(qi|0)?1:(wi|0)<=(qi|0)?yi>>>0>=ti>>>0?0:1:0){break b}qi=vi+zi|0;qi=q[qi|0]|q[qi+1|0]<<8|(q[qi+2|0]<<16|q[qi+3|0]<<24);p[Ih+16>>2]=ti;p[Ih+20>>2]=si;if((ri|0)>(qi|0)){break b}p[ea+16>>2]=qi;p[ea+12>>2]=ri;Ih=ri;ri=(qi>>31)-((qi>>>0>>0)+(Ih>>31)|0)|0;Ih=qi-Ih|0;if(!ri&Ih>>>0>2147483646|ri>>>0>0){break b}Ai=1;Ih=Ih+1|0;p[ea+20>>2]=Ih;ri=ea+24|0;qi=(Ih|0)/2|0;p[ri>>2]=qi;p[ea+28>>2]=0-qi;if(Ih&1){break b}p[ri>>2]=qi+ -1}}S=xi+16|0;return Ai|0}function Vc(ea,Ih,Bi,Ci,Di,Ei){ea=ea|0;Ih=Ih|0;Bi=Bi|0;Ci=Ci|0;Di=Di|0;Ei=Ei|0;var Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0;Ci=0;a:{if((Di|0)!=2){break a}p[ea+8>>2]=2;p[ea- -64>>2]=Ei;Ci=ea+32|0;Di=p[Ci>>2];Ei=p[ea+36>>2]-Di|0;Fi=Ei>>2;b:{if(Fi>>>0<=1){vb(Ci,2-Fi|0);break b}if((Ei|0)==8){break b}p[ea+36>>2]=Di+8}Ci=1;Di=p[ea+56>>2];Ei=p[Di+4>>2];Di=p[Di>>2];Fi=Ei-Di|0;if((Fi|0)<1){break a}if((Di|0)!=(Ei|0)){Ni=ea+60|0;Oi=Fi>>2;Fi=ea+8|0;Ji=ea+16|0;Ki=ea+32|0;Li=ea+20|0;Mi=ea+12|0;Pi=ea+56|0;while(1){if(!Wc(Ni,p[(Hi<<2)+Di>>2],Bi,Hi)){Ci=0;break a}c:{if(p[Fi>>2]<1){break c}Di=0;while(1){Ci=Di<<2;Ei=p[(Ci+ea|0)+68>>2];Gi=p[Ji>>2];d:{if((Ei|0)>(Gi|0)){Ii=p[Ki>>2];p[Ci+Ii>>2]=Gi;break d}Ii=p[Ki>>2];Ci=Ci+Ii|0;Gi=p[Mi>>2];if((Ei|0)<(Gi|0)){p[Ci>>2]=Gi;break d}p[Ci>>2]=Ei}Di=Di+1|0;Ci=p[Fi>>2];if((Di|0)<(Ci|0)){continue}break}Ei=0;if((Ci|0)<1){break c}Ci=Hi<<3;Gi=Ci+Bi|0;Qi=Ih+Ci|0;while(1){Di=Ei<<2;Ci=Di+Gi|0;Di=p[Di+Qi>>2]+p[Di+Ii>>2]|0;p[Ci>>2]=Di;e:{if((Di|0)>p[Ji>>2]){Di=Di-p[Li>>2]|0}else{if((Di|0)>=p[Mi>>2]){break e}Di=Di+p[Li>>2]|0}p[Ci>>2]=Di}Ei=Ei+1|0;if((Ei|0)>2]){continue}break}}Ci=1;Hi=Hi+1|0;if((Hi|0)>=(Oi|0)){break a}Ci=p[Pi>>2];Di=p[Ci>>2];if(p[Ci+4>>2]-Di>>2>>>0>Hi>>>0){continue}break}}Qg();E()}return Ci|0}function Wc(ea,Ih,Bi,Ci){var Di=0,Ei=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0;Ri=S-80|0;S=Ri;Ei=-1;Di=-1;a:{if((Ih|0)==-1){break a}Di=Ih+1|0;Ei=(Di>>>0)%3|0?Di:Ih+ -2|0;Di=Ih+ -1|0;if((Ih>>>0)%3){break a}Di=Ih+2|0}Si=p[ea+36>>2];Ih=p[Si>>2];b:{c:{d:{e:{f:{Si=p[Si+4>>2]-Ih>>2;Ti=Ei<<2;Ei=p[p[ea+32>>2]+28>>2];Ui=p[Ti+Ei>>2];if(Si>>>0<=Ui>>>0){break f}Di=p[Ei+(Di<<2)>>2];if(Si>>>0<=Di>>>0){break f}g:{h:{Xi=p[Ih+(Ui<<2)>>2];_i=(Xi|0)>=(Ci|0);if(_i){break h}Ei=p[Ih+(Di<<2)>>2];if((Ei|0)>=(Ci|0)){break h}Ih=Ei<<3;dj=p[(Ih|4)+Bi>>2];Di=Xi<<3;Yi=p[(Di|4)+Bi>>2];aj=p[Ih+Bi>>2];cj=p[Bi+Di>>2];if(!((aj|0)!=(cj|0)|(Yi|0)!=(dj|0))){p[ea+8>>2]=cj;p[ea+12>>2]=Yi;break g}Ih=p[p[ea+4>>2]+(Ci<<2)>>2];p[Ri+72>>2]=0;p[Ri+76>>2]=0;Di=Ri- -64|0;p[Di>>2]=0;p[Di+4>>2]=0;p[Ri+56>>2]=0;p[Ri+60>>2]=0;Di=p[ea>>2];if(!q[Di+84|0]){Ih=p[p[Di+68>>2]+(Ih<<2)>>2]}Xc(Di,Ih,n[Di+24|0],Ri+56|0);Ih=p[p[ea+4>>2]+(Xi<<2)>>2];p[Ri+48>>2]=0;p[Ri+52>>2]=0;p[Ri+40>>2]=0;p[Ri+44>>2]=0;p[Ri+32>>2]=0;p[Ri+36>>2]=0;Di=p[ea>>2];if(!q[Di+84|0]){Ih=p[p[Di+68>>2]+(Ih<<2)>>2]}Xc(Di,Ih,n[Di+24|0],Ri+32|0);Ih=p[p[ea+4>>2]+(Ei<<2)>>2];p[Ri+24>>2]=0;p[Ri+28>>2]=0;p[Ri+16>>2]=0;p[Ri+20>>2]=0;p[Ri+8>>2]=0;p[Ri+12>>2]=0;Di=p[ea>>2];if(!q[Di+84|0]){Ih=p[p[Di+68>>2]+(Ih<<2)>>2]}Xc(Di,Ih,n[Di+24|0],Ri+8|0);ej=p[Ri+44>>2];Ih=p[Ri+16>>2];Ti=p[Ri+40>>2];Di=Ti;Ei=p[Ri+20>>2]-(ej+(Ih>>>0>>0)|0)|0;gj=Ih-Di|0;Ih=Sh(gj,Ei,gj,Ei);Di=U;Wi=Ih;fj=p[Ri+36>>2];Ih=p[Ri+8>>2];Vi=p[Ri+32>>2];Ui=Vi;Si=p[Ri+12>>2]-(fj+(Ih>>>0>>0)|0)|0;hj=Ih-Ui|0;Ui=Sh(hj,Si,hj,Si);Ih=Wi+Ui|0;Di=U+Di|0;Di=Ih>>>0>>0?Di+1|0:Di;$i=Ih;jj=p[Ri+52>>2];Ih=p[Ri+24>>2];Wi=p[Ri+48>>2];Ui=Wi;Zi=p[Ri+28>>2]-(jj+(Ih>>>0>>0)|0)|0;ij=Ih-Ui|0;Ui=Sh(ij,Zi,ij,Zi);Ih=$i+Ui|0;Di=U+Di|0;bj=Ih;Ui=Ih>>>0>>0?Di+1|0:Di;if(!(Ih|Ui)){break h}Ci=1;Ih=0;Di=p[Ri+64>>2];Bi=p[Ri+68>>2]-((Di>>>0>>0)+ej|0)|0;Di=Di-Ti|0;Xi=Di;_i=Bi;Bi=Sh(gj,Ei,Di,Bi);Di=U;$i=Bi;Ti=p[Ri+56>>2];Bi=Ti-Vi|0;ej=p[Ri+60>>2]-((Ti>>>0>>0)+fj|0)|0;Vi=Sh(Bi,ej,hj,Si);Ti=$i+Vi|0;Di=U+Di|0;Di=Ti>>>0>>0?Di+1|0:Di;$i=Ti;Ti=p[Ri+72>>2];Vi=Ti-Wi|0;fj=p[Ri+76>>2]-((Ti>>>0>>0)+jj|0)|0;Wi=Sh(Vi,fj,ij,Zi);Ti=$i+Wi|0;Di=U+Di|0;Di=Ti>>>0>>0?Di+1|0:Di;Wi=Ti;Ti=Di;Ei=Th(Sh(Wi,Di,gj,Ei),U,bj,Ui);_i=_i-(U+(Xi>>>0>>0)|0)|0;Ei=Xi-Ei|0;Ei=Sh(Ei,_i,Ei,_i);Xi=U;$i=Ei;Di=Th(Sh(hj,Si,Wi,Di),U,bj,Ui);Ei=ej-(U+(Bi>>>0>>0)|0)|0;Bi=Bi-Di|0;Ei=Sh(Bi,Ei,Bi,Ei);Bi=$i+Ei|0;Di=U+Xi|0;Di=Bi>>>0>>0?Di+1|0:Di;Si=Bi;Bi=Th(Sh(Wi,Ti,ij,Zi),U,bj,Ui);Ei=fj-(U+(Vi>>>0>>0)|0)|0;Bi=Vi-Bi|0;Ei=Sh(Bi,Ei,Bi,Ei);Bi=Si+Ei|0;Di=U+Di|0;Ei=Sh(Bi,Bi>>>0>>0?Di+1|0:Di,bj,Ui);Bi=U;Si=Bi;if(!Bi&Ei>>>0<=1|Bi>>>0<0){break e}Zi=Ei;Bi=Si;while(1){Di=Ih<<1|Ci>>>31;Ci=Ci<<1;Ih=Di;Vi=!Bi&Zi>>>0>7|Bi>>>0>0;Zi=(Bi&3)<<30|Zi>>>2;Bi=Bi>>>2;if(Vi){continue}break}break d}Di=ea;if(_i){if((Ci|0)<=0){p[ea+8>>2]=0;p[ea+12>>2]=0;break g}Ih=(Ci<<1)+ -2|0}else{Ih=Xi<<1}Ih=(Ih<<2)+Bi|0;p[Di+8>>2]=p[Ih>>2];p[ea+12>>2]=p[Ih+4>>2]}Bi=1;break b}Qg();E()}Ci=Ei;Ih=Si;if(Ei-1){break c}}while(1){Bi=Uh(Ei,Si,Ci,Ih)+Ci|0;Di=Ih+U|0;Di=Bi>>>0>>0?Di+1|0:Di;Ci=(Di&1)<<31|Bi>>>1;Ih=Di>>>1;Bi=Sh(Ci,Ih,Ci,Ih);Di=U;if((Si|0)==(Di|0)&Bi>>>0>Ei>>>0|Di>>>0>Si>>>0){continue}break}}Di=p[ea+20>>2];Bi=0;if(!Di){break b}Si=Di+ -1|0;Zi=p[p[ea+16>>2]+(Si>>>3&536870908)>>2];p[ea+20>>2]=Si;Bi=dj;Di=Yi;Vi=Bi-Di|0;Yi=Di>>31;dj=(Bi>>31)-(Yi+(Bi>>>0>>0)|0)|0;Bi=Sh(Wi,Ti,Vi,dj);Ei=U;Yi=Sh(Di,Yi,bj,Ui);Bi=Yi+Bi|0;Di=U+Ei|0;Di=Bi>>>0>>0?Di+1|0:Di;$i=Bi;Bi=aj;Ei=cj;Xi=Bi-Ei|0;cj=Ei>>31;Yi=(Bi>>31)-(cj+(Bi>>>0>>0)|0)|0;Bi=Sh(Ci,Ih,Xi,Yi);aj=Bi;Bi=Zi>>>(Si&31)&1;_i=Bi?0-aj|0:aj;Si=$i+_i|0;Zi=Di;Di=U;Di=Zi+(Bi?0-(Di+(0>>0)|0)|0:Di)|0;kj=ea,lj=Th(Si,Si>>>0<_i>>>0?Di+1|0:Di,bj,Ui),p[kj+12>>2]=lj;Di=Sh(Wi,Ti,Xi,Yi);Si=U;aj=ea;Ei=Sh(Ei,cj,bj,Ui);ea=Ei+Di|0;Di=U+Si|0;Di=ea>>>0>>0?Di+1|0:Di;Ti=ea;ea=Sh(Ci,Ih,Vi,dj);Ci=Bi?ea:0-ea|0;Ih=Ti+Ci|0;Ti=Di;Di=U;ea=Ti+(Bi?Di:0-((0>>0)+Di|0)|0)|0;kj=aj,lj=Th(Ih,Ih>>>0>>0?ea+1|0:ea,bj,Ui),p[kj+8>>2]=lj;Bi=1}S=Ri+80|0;return Bi}function Xc(ea,Ih,Bi,Ci){var mj=0,nj=0,oj=0,pj=0,qj=w(0),rj=0,sj=0;a:{b:{if(!Ci){break b}mj=p[ea+28>>2]+ -1|0;if(mj>>>0>10){break b}c:{d:{e:{switch(mj-1|0){default:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;pj=n[Ih|0];p[mj>>2]=pj;p[mj+4>>2]=pj>>31;Ih=Ih+1|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 0:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;p[mj>>2]=q[Ih|0];p[mj+4>>2]=0;Ih=Ih+1|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 1:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;pj=o[Ih>>1];p[mj>>2]=pj;p[mj+4>>2]=pj>>31;Ih=Ih+2|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 2:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;p[mj>>2]=r[Ih>>1];p[mj+4>>2]=0;Ih=Ih+2|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 3:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;pj=p[Ih>>2];p[mj>>2]=pj;p[mj+4>>2]=pj>>31;Ih=Ih+4|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 4:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;p[mj>>2]=p[Ih>>2];p[mj+4>>2]=0;Ih=Ih+4|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 5:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){pj=p[Ih+4>>2];mj=(nj<<3)+Ci|0;p[mj>>2]=p[Ih>>2];p[mj+4>>2]=pj;Ih=Ih+8|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 6:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){pj=p[Ih+4>>2];mj=(nj<<3)+Ci|0;p[mj>>2]=p[Ih>>2];p[mj+4>>2]=pj;Ih=Ih+8|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}break a;case 7:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24<1){break c}oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;oj=mj;qj=t[Ih>>2];f:{if(w(x(qj))=w(1)?qj>w(0)?~~w(z(w(B(w(qj/w(4294967296)))),w(4294967296)))>>>0:~~w(C(w(w(qj-w(~~qj>>>0>>>0))/w(4294967296))))>>>0:0;sj=~~qj>>>0;break f}pj=-2147483648;sj=0}p[oj>>2]=sj;p[mj+4>>2]=pj;Ih=Ih+4|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}break c;case 8:mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24<1){break d}oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;oj=mj;rj=u[Ih>>3];g:{if(x(rj)<0x8000000000000000){pj=x(rj)>=1?rj>0?~~z(B(rj/4294967296),4294967295)>>>0:~~C((rj- +(~~rj>>>0>>>0))/4294967296)>>>0:0;sj=~~rj>>>0;break g}pj=-2147483648;sj=0}p[oj>>2]=sj;p[mj+4>>2]=pj;Ih=Ih+8|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}break d;case 9:break e}}mj=n[ea+24|0];if(((mj|0)>(Bi|0)?Bi:mj)<<24>>24>=1){oj=p[p[ea>>2]>>2];mj=p[ea+48>>2]+Sh(p[ea+40>>2],p[ea+44>>2],Ih,0)|0;Ih=oj+mj|0;while(1){mj=(nj<<3)+Ci|0;p[mj>>2]=q[Ih|0];p[mj+4>>2]=0;Ih=Ih+1|0;nj=nj+1|0;mj=n[ea+24|0];if((nj|0)<((mj|0)>(Bi|0)?Bi:mj)<<24>>24){continue}break}}if((mj|0)>=(Bi|0)){break b}uh((mj<<3)+Ci|0,0,Bi-mj<<3);break b}if((mj|0)>=(Bi|0)){break b}break a}if((mj|0)>=(Bi|0)){break b}uh((mj<<3)+Ci|0,0,Bi-mj<<3)}return}uh((mj<<3)+Ci|0,0,Bi-mj<<3)}function Yc(ea){ea=ea|0;var Ih=0;p[ea>>2]=3888;p[ea>>2]=2884;Ih=p[ea+32>>2];if(Ih){p[ea+36>>2]=Ih;rh(Ih)}return ea|0}function Zc(ea){ea=ea|0;var Bi=0;p[ea>>2]=3888;p[ea>>2]=2884;Bi=p[ea+32>>2];if(Bi){p[ea+36>>2]=Bi;rh(Bi)}rh(ea)}function _c(p){p=p|0;return 6}function $c(ea){ea=ea|0;var Ci=0;a:{if(!p[ea- -64>>2]|!p[ea+68>>2]|(!p[ea+44>>2]|!p[ea+48>>2])){break a}if(!p[ea+52>>2]|!p[ea+56>>2]){break a}Ci=p[ea+92>>2]!=-1}return Ci|0}function ad(ea,tj){ea=ea|0;tj=tj|0;var uj=0;if(!(p[tj+56>>2]|q[tj+24|0]!=3)){p[ea- -64>>2]=tj;uj=1}return uj|0}function bd(ea,tj){ea=ea|0;tj=tj|0;var vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0,Fj=0;Bj=p[tj+12>>2];xj=Bj;wj=p[tj+20>>2];zj=wj;Cj=p[tj+16>>2];vj=Cj+4|0;if(vj>>>0<4){wj=wj+1|0}Dj=p[tj+8>>2];yj=vj;vj=wj;a:{if((xj|0)<(vj|0)?1:(xj|0)<=(vj|0)?Dj>>>0>=yj>>>0?0:1:0){break a}Ej=p[tj>>2];wj=Cj+Ej|0;xj=q[wj|0]|q[wj+1|0]<<8|(q[wj+2|0]<<16|q[wj+3|0]<<24);p[tj+16>>2]=yj;p[tj+20>>2]=vj;vj=Bj;wj=zj;Aj=Cj+8|0;if(Aj>>>0<8){wj=wj+1|0}if((vj|0)<(wj|0)?1:(vj|0)<=(wj|0)?Dj>>>0>=Aj>>>0?0:1:0){break a}vj=yj+Ej|0;vj=q[vj|0]|q[vj+1|0]<<8|(q[vj+2|0]<<16|q[vj+3|0]<<24);p[tj+16>>2]=Aj;p[tj+20>>2]=wj;if((xj|0)>(vj|0)){break a}p[ea+16>>2]=vj;p[ea+12>>2]=xj;yj=xj;xj=(vj>>31)-((xj>>31)+(vj>>>0>>0)|0)|0;vj=vj-yj|0;if(!xj&vj>>>0>2147483646|xj>>>0>0){break a}xj=vj+1|0;p[ea+20>>2]=xj;yj=ea+24|0;vj=(xj|0)/2|0;p[yj>>2]=vj;p[ea+28>>2]=0-vj;if(!(xj&1)){p[yj>>2]=vj+ -1}if(r[tj+38>>1]<=513){if((Bj|0)<(wj|0)?1:(Bj|0)<=(wj|0)?Dj>>>0>Aj>>>0?0:1:0){break a}vj=q[Aj+Ej|0];wj=zj;zj=Cj+9|0;if(zj>>>0<9){wj=wj+1|0}xj=tj;p[xj+16>>2]=zj;p[xj+20>>2]=wj;if(vj>>>0>1){break a}p[ea+88>>2]=vj-1|0?0:1}Fj=me(ea+108|0,tj)}return Fj|0}function cd(ea,tj,Gj,Hj,Ij,Jj){ea=ea|0;tj=tj|0;Gj=Gj|0;Hj=Hj|0;Ij=Ij|0;Jj=Jj|0;var Kj=0,Lj=0,Mj=0,Nj=0,Oj=0,Pj=0,Qj=0,Rj=0,Sj=0,Tj=0,Uj=0,Vj=0,Wj=0,Xj=0,Yj=0;Lj=S-32|0;S=Lj;p[ea+68>>2]=Jj;Hj=p[ea+56>>2];Ij=p[Hj>>2];Jj=Hj+4|0;Kj=p[Jj>>2];p[Lj+24>>2]=0;p[Lj+16>>2]=0;p[Lj+20>>2]=0;a:{Ij=Kj-Ij|0;if((Ij|0)<1){break a}Hj=p[Hj>>2];if((Hj|0)!=p[Jj>>2]){Vj=Ij>>2;Wj=ea+60|0;Xj=ea+108|0;Qj=ea+8|0;Rj=ea+16|0;Sj=ea+32|0;Tj=ea+20|0;Uj=ea+12|0;Yj=ea+56|0;while(1){dd(Wj,p[(Oj<<2)+Hj>>2],Lj+16|0);Ij=p[Lj+20>>2];Kj=Ij>>31;Jj=p[Lj+16>>2];Mj=Jj>>31;Pj=p[Lj+24>>2];Nj=Pj>>31;Hj=0;Nj=Nj^Nj+Pj;Kj=Nj+((Kj^Ij+Kj)+(Mj^Jj+Mj)|0)|0;if(Kj>>>0>>0){Hj=1}b:{if(!(Hj|Kj)){p[Lj+16>>2]=p[ea+104>>2];break b}Mj=p[ea+104>>2];Nj=Mj>>31;Ij=Th(Sh(Mj,Nj,Ij,Ij>>31),U,Kj,Hj);p[Lj+20>>2]=Ij;Hj=Th(Sh(Mj,Nj,Jj,Jj>>31),U,Kj,Hj);p[Lj+16>>2]=Hj;Jj=Hj;Hj=Hj>>31;Hj=(Mj-(Jj+Hj^Hj)|0)+((Ij|0)<0?Ij:0-Ij|0)|0;if((Pj|0)>=0){p[Lj+24>>2]=Hj;break b}p[Lj+24>>2]=0-Hj}Hj=oe(Xj);Jj=p[Lj+16>>2];c:{if(!Hj){Ij=p[Lj+20>>2];break c}p[Lj+24>>2]=0-p[Lj+24>>2];Ij=0-p[Lj+20>>2]|0;p[Lj+20>>2]=Ij;Jj=0-Jj|0;p[Lj+16>>2]=Jj}d:{if((Jj|0)>=0){Hj=p[ea+104>>2];Jj=Hj+p[Lj+24>>2]|0;Hj=Hj+Ij|0;break d}e:{if((Ij|0)<=-1){Jj=p[Lj+24>>2];Hj=Jj>>31;Hj=Hj^Hj+Jj;break e}Jj=p[Lj+24>>2];Hj=Jj>>31;Hj=p[ea+100>>2]-(Hj^Hj+Jj)|0}if((Jj|0)<=-1){Jj=Ij;Ij=Ij>>31;Jj=Jj+Ij^Ij;break d}Jj=Ij;Ij=Ij>>31;Jj=p[ea+100>>2]-(Jj+Ij^Ij)|0}Ij=p[ea+100>>2];f:{if(!(Hj|Jj)){Jj=Ij;Hj=Ij;break f}if(!((Ij|0)!=(Jj|0)|Hj)){Hj=Jj;break f}if(!((Hj|0)!=(Ij|0)|Jj)){Jj=Hj;break f}g:{if(Hj){break g}Kj=p[ea+104>>2];if((Kj|0)>=(Jj|0)){break g}Jj=(Kj<<1)-Jj|0;Hj=0;break f}h:{if((Hj|0)!=(Ij|0)){break h}Kj=p[ea+104>>2];if((Kj|0)<=(Jj|0)){break h}Jj=(Kj<<1)-Jj|0;break f}i:{if((Ij|0)!=(Jj|0)){break i}Ij=p[ea+104>>2];if((Ij|0)<=(Hj|0)){break i}Hj=(Ij<<1)-Hj|0;break f}if(Jj){break f}Jj=0;Ij=p[ea+104>>2];if((Ij|0)>=(Hj|0)){break f}Hj=(Ij<<1)-Hj|0}p[Lj+12>>2]=Jj;p[Lj+8>>2]=Hj;j:{if(p[Qj>>2]<1){break j}Jj=0;while(1){Kj=p[Rj>>2];k:{if((Hj|0)>(Kj|0)){Ij=p[Sj>>2];p[Ij+(Jj<<2)>>2]=Kj;break k}Ij=p[Sj>>2];Kj=Ij+(Jj<<2)|0;Mj=p[Uj>>2];if((Hj|0)<(Mj|0)){p[Kj>>2]=Mj;break k}p[Kj>>2]=Hj}Jj=Jj+1|0;Kj=p[Qj>>2];if((Jj|0)<(Kj|0)){Hj=p[(Lj+8|0)+(Jj<<2)>>2];continue}break}Hj=0;if((Kj|0)<1){break j}Jj=Oj<<3;Mj=Jj+Gj|0;Pj=tj+Jj|0;while(1){Kj=Hj<<2;Jj=Kj+Mj|0;Kj=p[Kj+Pj>>2]+p[Ij+Kj>>2]|0;p[Jj>>2]=Kj;l:{if((Kj|0)>p[Rj>>2]){Nj=Kj-p[Tj>>2]|0}else{if((Kj|0)>=p[Uj>>2]){break l}Nj=Kj+p[Tj>>2]|0}p[Jj>>2]=Nj}Hj=Hj+1|0;if((Hj|0)>2]){continue}break}}Oj=Oj+1|0;if((Oj|0)>=(Vj|0)){break a}Ij=p[Yj>>2];Hj=p[Ij>>2];if(p[Ij+4>>2]-Hj>>2>>>0>Oj>>>0){continue}break}}Qg();E()}S=Lj+32|0;return 1}function dd(ea,tj,Gj){ea=ea|0;tj=tj|0;Gj=Gj|0;var Hj=0,Ij=0,Jj=0,Zj=0,_j=0,$j=0,ak=0,bk=0,ck=0,dk=0,ek=0,fk=0,gk=0,hk=0,ik=0,jk=0,kk=0,lk=0,mk=0,nk=0,ok=0,pk=0,qk=0,rk=0,sk=0,tk=0;Ij=S-96|0;S=Ij;Hj=p[ea+16>>2];n[Ij+92|0]=1;p[Ij+88>>2]=tj;p[Ij+84>>2]=tj;p[Ij+80>>2]=Hj;Zj=p[ea+20>>2];Jj=p[Zj>>2];a:{b:{c:{d:{Hj=p[p[Hj+28>>2]+(tj<<2)>>2];if(p[Zj+4>>2]-Jj>>2>>>0>Hj>>>0){Hj=p[p[ea+8>>2]+(p[Jj+(Hj<<2)>>2]<<2)>>2];Jj=p[ea+4>>2];if(!q[Jj+84|0]){Hj=p[p[Jj+68>>2]+(Hj<<2)>>2]}p[Ij+72>>2]=0;p[Ij+76>>2]=0;Zj=Ij- -64|0;p[Zj>>2]=0;p[Zj+4>>2]=0;p[Ij+56>>2]=0;p[Ij+60>>2]=0;Xc(Jj,Hj,n[Jj+24|0],Ij+56|0);if((tj|0)==-1){break a}Hj=tj+1|0;Zj=(Hj>>>0)%3|0?Hj:tj+ -2|0;hk=((tj>>>0)%3|0?-1:2)+tj|0;ok=ea+28|0;_j=!p[ok>>2];pk=ea+20|0;qk=ea+16|0;rk=ea+8|0;while(1){Jj=Zj;Hj=hk;e:{if(_j){break e}Hj=tj+1|0;Jj=(Hj>>>0)%3|0?Hj:tj+ -2|0;Hj=tj+ -1|0;if((tj>>>0)%3){break e}Hj=tj+2|0}_j=p[pk>>2];tj=p[_j>>2];Jj=p[p[p[qk>>2]+28>>2]+(Jj<<2)>>2];if(p[_j+4>>2]-tj>>2>>>0<=Jj>>>0){break d}Jj=p[p[rk>>2]+(p[tj+(Jj<<2)>>2]<<2)>>2];_j=ea+4|0;tj=p[_j>>2];if(!q[tj+84|0]){Jj=p[p[tj+68>>2]+(Jj<<2)>>2]}p[Ij+48>>2]=0;p[Ij+52>>2]=0;p[Ij+40>>2]=0;p[Ij+44>>2]=0;p[Ij+32>>2]=0;p[Ij+36>>2]=0;Xc(tj,Jj,n[tj+24|0],Ij+32|0);Jj=p[pk>>2];tj=p[Jj>>2];Hj=p[p[p[qk>>2]+28>>2]+(Hj<<2)>>2];if(p[Jj+4>>2]-tj>>2>>>0<=Hj>>>0){break c}Jj=p[p[rk>>2]+(p[tj+(Hj<<2)>>2]<<2)>>2];tj=p[_j>>2];if(!q[tj+84|0]){Jj=p[p[tj+68>>2]+(Jj<<2)>>2]}_j=Ij+24|0;Hj=_j;p[Hj>>2]=0;p[Hj+4>>2]=0;bk=Ij+16|0;Hj=bk;p[Hj>>2]=0;p[Hj+4>>2]=0;p[Ij+8>>2]=0;p[Ij+12>>2]=0;Xc(tj,Jj,n[tj+24|0],Ij+8|0);Hj=p[Ij+8>>2];tj=p[Ij+56>>2];ik=Hj-tj|0;jk=p[Ij+60>>2];Jj=p[Ij+12>>2]-(jk+(Hj>>>0>>0)|0)|0;kk=p[Ij+40>>2];Hj=p[Ij+64>>2];sk=kk-Hj|0;lk=p[Ij+68>>2];kk=p[Ij+44>>2]-(lk+(kk>>>0>>0)|0)|0;mk=Sh(ik,Jj,sk,kk);nk=$j-mk|0;ck=ck-(U+($j>>>0>>0)|0)|0;$j=p[bk>>2];mk=$j-Hj|0;bk=p[bk+4>>2]-(($j>>>0>>0)+lk|0)|0;$j=p[Ij+32>>2];lk=$j-tj|0;jk=p[Ij+36>>2]-(($j>>>0>>0)+jk|0)|0;Hj=Sh(mk,bk,lk,jk);$j=Hj+nk|0;tj=U+ck|0;tj=$j>>>0>>0?tj+1|0:tj;ck=tj;Hj=ak;ek=ik;tk=Jj;ak=p[Ij+48>>2];tj=p[Ij+72>>2];Jj=ak-tj|0;ik=p[Ij+76>>2];nk=p[Ij+52>>2]-(ik+(ak>>>0>>0)|0)|0;ek=Sh(ek,tk,Jj,nk);ak=Hj+ek|0;Hj=U+fk|0;Hj=ak>>>0>>0?Hj+1|0:Hj;fk=ak;ak=p[_j>>2];ek=ak-tj|0;tj=p[_j+4>>2]-((ak>>>0>>0)+ik|0)|0;_j=Sh(ek,tj,lk,jk);ak=fk-_j|0;fk=Hj-(U+(fk>>>0<_j>>>0)|0)|0;Hj=Sh(mk,bk,Jj,nk);Jj=dk-Hj|0;gk=gk-(U+(dk>>>0>>0)|0)|0;Hj=Sh(ek,tj,sk,kk);dk=Hj+Jj|0;tj=U+gk|0;tj=dk>>>0>>0?tj+1|0:tj;gk=tj;fd(Ij+80|0);bk=p[ok>>2];_j=!bk;tj=p[Ij+88>>2];if((tj|0)!=-1){continue}break}tj=fk;Hj=tj>>31;ea=tj>>31;tj=ea+tj|0;Zj=Hj+ak|0;if(Zj>>>0>>0){tj=tj+1|0}Hj=Hj^Zj;_j=ea^tj;tj=gk;ea=tj>>31;tj=tj>>31;Zj=ea;hk=gk+ea|0;Jj=tj+dk|0;if(Jj>>>0>>0){hk=hk+1|0}ea=tj^Jj;Jj=Zj^hk;f:{if((ck|0)<-1?1:(ck|0)<=-1?$j>>>0>4294967295?0:1:0){tj=$j;Zj=ea+(Hj-tj|0)|0;tj=Jj+(_j-((Hj>>>0>>0)+ck|0)|0)|0;Hj=Zj;ea=Hj>>>0>>0?tj+1|0:tj;if(!bk){break f}break b}tj=_j+ck|0;Zj=Hj;Hj=$j;Zj=Zj+Hj|0;if(Zj>>>0>>0){tj=tj+1|0}Hj=ea;Zj=Hj+Zj|0;ea=tj+Jj|0;ea=Zj>>>0>>0?ea+1|0:ea;Hj=Zj;if(bk){break b}}if((Hj|0)<536870913){break a}ea=((ea&536870911)<<3|Hj>>>29)&7;tj=0;$j=Th($j,ck,ea,tj);ak=Th(ak,fk,ea,tj);dk=Th(dk,gk,ea,tj);break a}Qg();E()}Qg();E()}Qg();E()}if((ea|0)<0?1:(ea|0)<=0?Hj>>>0>=536870913?0:1:0){break a}tj=ea>>>29;ea=(ea&536870911)<<3|Hj>>>29;$j=Th($j,ck,ea,tj);ak=Th(ak,fk,ea,tj);dk=Th(dk,gk,ea,tj)}p[Gj+8>>2]=$j;p[Gj+4>>2]=ak;p[Gj>>2]=dk;S=Ij+96|0}function ed(ea,tj){ea=ea|0;tj=tj|0;if(tj>>>0<=1){p[ea+28>>2]=tj;ea=1}else{ea=0}return ea|0}function fd(ea){var tj=0,Gj=0,uk=0;tj=p[ea+8>>2];uk=p[ea>>2];a:{if(q[ea+12|0]){b:{c:{d:{e:{if((tj|0)==-1){break e}Gj=tj+1|0;tj=(Gj>>>0)%3|0?Gj:tj+ -2|0;if((tj|0)==-1|p[p[uk>>2]+(tj>>>3&536870908)>>2]>>>(tj&31)&1){break e}tj=p[p[p[uk+64>>2]+12>>2]+(tj<<2)>>2];if((tj|0)!=-1){break d}}p[ea+8>>2]=-1;break c}Gj=tj+1|0;tj=(Gj>>>0)%3|0?Gj:tj+ -2|0;p[ea+8>>2]=tj;if((tj|0)!=-1){break b}}tj=-1;Gj=p[ea+4>>2];f:{if((Gj|0)==-1){break f}Gj=Gj+((Gj>>>0)%3|0?-1:2)|0;if((Gj|0)==-1|p[p[uk>>2]+(Gj>>>3&536870908)>>2]>>>(Gj&31)&1){break f}uk=p[p[p[uk+64>>2]+12>>2]+(Gj<<2)>>2];if((uk|0)==-1){break f}if((uk>>>0)%3){tj=uk+ -1|0;break f}tj=uk+2|0}n[ea+12|0]=0;p[ea+8>>2]=tj;return}if((tj|0)!=p[ea+4>>2]){break a}p[ea+8>>2]=-1;return}Gj=-1;g:{if((tj|0)==-1){break g}tj=tj+((tj>>>0)%3|0?-1:2)|0;if((tj|0)==-1|p[p[uk>>2]+(tj>>>3&536870908)>>2]>>>(tj&31)&1){break g}tj=p[p[p[uk+64>>2]+12>>2]+(tj<<2)>>2];if((tj|0)==-1){break g}if((tj>>>0)%3){Gj=tj+ -1|0;break g}Gj=tj+2|0}p[ea+8>>2]=Gj}}function gd(ea,vk,wk,xk){var yk=0,zk=0,Ak=0,Bk=0,Ck=0,Dk=0,Ek=0,Fk=0;p[ea>>2]=2884;p[ea+4>>2]=vk;vk=p[wk+8>>2];yk=p[wk+12>>2];zk=p[wk+16>>2];Bk=p[wk+20>>2];Ck=p[wk>>2];Dk=p[wk+4>>2];p[ea+40>>2]=0;Ak=ea+32|0;p[Ak>>2]=0;p[Ak+4>>2]=0;p[ea+24>>2]=zk;p[ea+28>>2]=Bk;p[ea+16>>2]=vk;p[ea+20>>2]=yk;p[ea+8>>2]=Ck;p[ea+12>>2]=Dk;a:{vk=p[wk+28>>2]-p[wk+24>>2]|0;b:{if(!vk){break b}yk=vk>>2;if(yk>>>0>=1073741824){break a}vk=Bg(vk);p[ea+32>>2]=vk;zk=ea+36|0;p[zk>>2]=vk;p[ea+40>>2]=vk+(yk<<2);yk=p[wk+24>>2];wk=p[wk+28>>2]-yk|0;if((wk|0)<1){break b}Ek=zk,Fk=th(vk,yk,wk)+wk|0,p[Ek>>2]=Fk}p[ea>>2]=4884;vk=p[xk+4>>2];p[ea+44>>2]=p[xk>>2];p[ea+48>>2]=vk;vk=p[xk+12>>2];p[ea+52>>2]=p[xk+8>>2];p[ea+56>>2]=vk;return}Pg();E()}function hd(ea,vk,wk,xk,Gk,Hk){ea=ea|0;vk=vk|0;wk=wk|0;xk=xk|0;Gk=Gk|0;Hk=Hk|0;var Ik=0,Jk=0,Kk=0,Lk=0,Mk=0,Nk=0,Ok=0,Pk=0,Qk=0,Rk=0,Sk=0,Tk=0,Uk=0,Vk=0,Wk=0,Xk=0;p[ea+8>>2]=Gk;Hk=ea+32|0;Jk=p[Hk>>2];xk=p[ea+36>>2]-Jk>>2;a:{if(xk>>>0>>0){vb(Hk,Gk-xk|0);break a}if(xk>>>0<=Gk>>>0){break a}p[ea+36>>2]=Jk+(Gk<<2)}Xk=p[ea+52>>2];Uk=p[ea+48>>2];xk=0;Hk=(Gk&1073741823)!=(Gk|0)?-1:Gk<<2;Tk=uh(Bg(Hk),0,Hk);Mk=ea+8|0;Hk=p[Mk>>2];b:{if((Hk|0)<1){break b}Ok=ea+16|0;Jk=ea+32|0;Pk=ea+12|0;while(1){Hk=xk<<2;Ik=p[Hk+Tk>>2];Lk=p[Ok>>2];c:{if((Ik|0)>(Lk|0)){Nk=p[Jk>>2];p[Hk+Nk>>2]=Lk;break c}Nk=p[Jk>>2];Hk=Hk+Nk|0;Lk=p[Pk>>2];if((Ik|0)<(Lk|0)){p[Hk>>2]=Lk;break c}p[Hk>>2]=Ik}xk=xk+1|0;Hk=p[Mk>>2];if((xk|0)<(Hk|0)){continue}break}if((Hk|0)<1){break b}Jk=0;Mk=ea+16|0;Ik=ea+20|0;Ok=ea+8|0;Pk=ea+12|0;while(1){Hk=Jk<<2;xk=Hk+wk|0;Hk=p[vk+Hk>>2]+p[Hk+Nk>>2]|0;p[xk>>2]=Hk;d:{if((Hk|0)>p[Mk>>2]){Hk=Hk-p[Ik>>2]|0}else{if((Hk|0)>=p[Pk>>2]){break d}Hk=Hk+p[Ik>>2]|0}p[xk>>2]=Hk}Jk=Jk+1|0;Hk=p[Ok>>2];if((Jk|0)<(Hk|0)){continue}break}}xk=p[ea+56>>2];Vk=p[xk>>2];xk=p[xk+4>>2]-Vk|0;if((xk|0)>=5){Wk=xk>>2;Nk=ea+16|0;Mk=ea+32|0;Ok=ea+8|0;Pk=ea+20|0;Lk=ea+12|0;Jk=1;while(1){e:{f:{if(Wk>>>0>Jk>>>0){Sk=v(Gk,Jk);ea=p[(Jk<<2)+Vk>>2];if((ea|0)==-1){break f}ea=p[p[Uk+12>>2]+(ea<<2)>>2];if((ea|0)==-1){break f}xk=-1;Kk=p[Xk>>2];Ik=p[Uk>>2];Qk=p[Kk+(p[Ik+(ea<<2)>>2]<<2)>>2];Rk=ea+1|0;Rk=(Rk>>>0)%3|0?Rk:ea+ -2|0;if((Rk|0)!=-1){Rk=p[Ik+(Rk<<2)>>2]}else{Rk=-1}ea=ea+((ea>>>0)%3|0?-1:2)|0;if((ea|0)!=-1){xk=p[Ik+(ea<<2)>>2]}if((Qk|0)>=(Jk|0)){break f}ea=p[(Rk<<2)+Kk>>2];if((ea|0)>=(Jk|0)){break f}xk=p[Kk+(xk<<2)>>2];if((xk|0)>=(Jk|0)){break f}if((Gk|0)>=1){Ik=v(xk,Gk);ea=v(ea,Gk);Kk=v(Gk,Qk);xk=0;while(1){p[(xk<<2)+Tk>>2]=(p[(xk+Ik<<2)+wk>>2]+p[(ea+xk<<2)+wk>>2]|0)-p[(xk+Kk<<2)+wk>>2];xk=xk+1|0;if((Gk|0)!=(xk|0)){continue}break}}if((Hk|0)<1){break e}xk=0;while(1){ea=xk<<2;Hk=p[ea+Tk>>2];Kk=p[Nk>>2];g:{if((Hk|0)>(Kk|0)){Ik=p[Mk>>2];p[ea+Ik>>2]=Kk;break g}Ik=p[Mk>>2];ea=ea+Ik|0;Kk=p[Lk>>2];if((Hk|0)<(Kk|0)){p[ea>>2]=Kk;break g}p[ea>>2]=Hk}xk=xk+1|0;Hk=p[Ok>>2];if((xk|0)<(Hk|0)){continue}break}xk=0;if((Hk|0)<1){break e}ea=Sk<<2;Sk=ea+wk|0;Kk=ea+vk|0;while(1){Hk=xk<<2;ea=Hk+Sk|0;Hk=p[Hk+Kk>>2]+p[Hk+Ik>>2]|0;p[ea>>2]=Hk;h:{if((Hk|0)>p[Nk>>2]){Hk=Hk-p[Pk>>2]|0}else{if((Hk|0)>=p[Lk>>2]){break h}Hk=Hk+p[Pk>>2]|0}p[ea>>2]=Hk}xk=xk+1|0;Hk=p[Ok>>2];if((xk|0)<(Hk|0)){continue}break}break e}Qg();E()}if((Hk|0)<1){break e}Kk=(v(Jk+ -1|0,Gk)<<2)+wk|0;xk=0;while(1){ea=xk<<2;Hk=p[ea+Kk>>2];Qk=p[Nk>>2];i:{if((Hk|0)>(Qk|0)){Ik=p[Mk>>2];p[ea+Ik>>2]=Qk;break i}Ik=p[Mk>>2];ea=ea+Ik|0;Qk=p[Lk>>2];if((Hk|0)<(Qk|0)){p[ea>>2]=Qk;break i}p[ea>>2]=Hk}xk=xk+1|0;Hk=p[Ok>>2];if((xk|0)<(Hk|0)){continue}break}xk=0;if((Hk|0)<1){break e}ea=Sk<<2;Sk=ea+wk|0;Kk=ea+vk|0;while(1){Hk=xk<<2;ea=Hk+Sk|0;Hk=p[Hk+Kk>>2]+p[Hk+Ik>>2]|0;p[ea>>2]=Hk;j:{if((Hk|0)>p[Nk>>2]){Hk=Hk-p[Pk>>2]|0}else{if((Hk|0)>=p[Lk>>2]){break j}Hk=Hk+p[Pk>>2]|0}p[ea>>2]=Hk}xk=xk+1|0;Hk=p[Ok>>2];if((xk|0)<(Hk|0)){continue}break}}Jk=Jk+1|0;if((Jk|0)<(Wk|0)){continue}break}}rh(Tk);return 1}function id(ea,vk,wk,xk,Gk,Hk){ea=ea|0;vk=vk|0;wk=wk|0;xk=xk|0;Gk=Gk|0;Hk=Hk|0;var Yk=0,Zk=0,_k=0,$k=0,al=0,bl=0,cl=0,dl=0,el=0,fl=0,gl=0,hl=0,il=0,jl=0,kl=0,ll=0,ml=0,nl=0,ol=0,pl=0,ql=0,rl=0;p[ea+8>>2]=Gk;Hk=ea+32|0;Yk=p[Hk>>2];xk=p[ea+36>>2]-Yk>>2;a:{if(xk>>>0>>0){vb(Hk,Gk-xk|0);break a}if(xk>>>0<=Gk>>>0){break a}p[ea+36>>2]=Yk+(Gk<<2)}Yk=0;xk=(Gk&1073741823)!=(Gk|0)?-1:Gk<<2;fl=uh(Bg(xk),0,xk);jl=uh(Bg(xk),0,xk);$k=ea+8|0;Zk=p[$k>>2];b:{if((Zk|0)<1){break b}dl=ea+16|0;xk=ea+32|0;el=ea+12|0;while(1){Hk=Yk<<2;Zk=p[Hk+fl>>2];al=p[dl>>2];c:{if((Zk|0)>(al|0)){_k=p[xk>>2];p[Hk+_k>>2]=al;break c}_k=p[xk>>2];Hk=Hk+_k|0;al=p[el>>2];if((Zk|0)<(al|0)){p[Hk>>2]=al;break c}p[Hk>>2]=Zk}Yk=Yk+1|0;Zk=p[$k>>2];if((Yk|0)<(Zk|0)){continue}break}if((Zk|0)<1){break b}Hk=0;dl=ea+16|0;$k=ea+20|0;el=ea+8|0;al=ea+12|0;while(1){Yk=Hk<<2;xk=Yk+wk|0;Yk=p[vk+Yk>>2]+p[Yk+_k>>2]|0;p[xk>>2]=Yk;d:{if((Yk|0)>p[dl>>2]){bl=Yk-p[$k>>2]|0}else{if((Yk|0)>=p[al>>2]){break d}bl=Yk+p[$k>>2]|0}p[xk>>2]=bl}Hk=Hk+1|0;Zk=p[el>>2];if((Hk|0)<(Zk|0)){continue}break}}xk=p[ea+56>>2];kl=p[xk>>2];xk=p[xk+4>>2]-kl|0;if((xk|0)>=5){ll=xk>>2;ml=p[ea+48>>2];ql=Gk<<2;rl=p[ea+52>>2];dl=ea+16|0;el=ea+32|0;al=ea+8|0;hl=ea+20|0;il=ea+12|0;$k=1;while(1){e:{f:{g:{if(ll>>>0>$k>>>0){Hk=p[($k<<2)+kl>>2];nl=(Gk|0)<1;if(!nl){uh(fl,0,ql)}if((Hk|0)==-1){ea=v(Gk,$k);break f}ol=p[ml+12>>2];cl=0;xk=Hk;while(1){ea=p[ol+(xk<<2)>>2];h:{if((ea|0)==-1){break h}_k=-1;gl=p[rl>>2];Yk=p[ml>>2];pl=p[gl+(p[Yk+(ea<<2)>>2]<<2)>>2];bl=ea+1|0;bl=(bl>>>0)%3|0?bl:ea+ -2|0;if((bl|0)!=-1){bl=p[Yk+(bl<<2)>>2]}else{bl=-1}ea=ea+((ea>>>0)%3|0?-1:2)|0;if((ea|0)!=-1){_k=p[Yk+(ea<<2)>>2]}if((pl|0)>=($k|0)){break h}ea=p[(bl<<2)+gl>>2];if((ea|0)>=($k|0)){break h}Yk=p[gl+(_k<<2)>>2];if((Yk|0)>=($k|0)){break h}i:{if(nl){break i}_k=v(Gk,Yk);ea=v(ea,Gk);gl=v(Gk,pl);Yk=0;while(1){p[jl+(Yk<<2)>>2]=(p[(Yk+_k<<2)+wk>>2]+p[(ea+Yk<<2)+wk>>2]|0)-p[(Yk+gl<<2)+wk>>2];Yk=Yk+1|0;if((Yk|0)!=(Gk|0)){continue}break}Yk=0;if((Gk|0)<=0){break i}while(1){ea=Yk<<2;_k=ea+fl|0;p[_k>>2]=p[_k>>2]+p[ea+jl>>2];Yk=Yk+1|0;if((Yk|0)!=(Gk|0)){continue}break}}cl=cl+1|0}xk=((xk>>>0)%3|0?-1:2)+xk|0;ea=-1;j:{if((xk|0)==-1){break j}xk=p[ol+(xk<<2)>>2];ea=-1;if((xk|0)==-1){break j}ea=xk+ -1|0;if((xk>>>0)%3){break j}ea=xk+2|0}xk=(ea|0)==(Hk|0)?-1:ea;if((xk|0)!=-1){continue}break}ea=v(Gk,$k);if(!cl){break f}Yk=0;if((Gk|0)<=0){break g}while(1){xk=(Yk<<2)+fl|0;p[xk>>2]=p[xk>>2]/(cl|0);Yk=Yk+1|0;if((Yk|0)!=(Gk|0)){continue}break}break g}Qg();E()}if((Zk|0)<1){break e}Yk=0;while(1){xk=Yk<<2;Hk=p[xk+fl>>2];Zk=p[dl>>2];k:{if((Hk|0)>(Zk|0)){_k=p[el>>2];p[xk+_k>>2]=Zk;break k}_k=p[el>>2];xk=xk+_k|0;Zk=p[il>>2];if((Hk|0)<(Zk|0)){p[xk>>2]=Zk;break k}p[xk>>2]=Hk}Yk=Yk+1|0;Zk=p[al>>2];if((Yk|0)<(Zk|0)){continue}break}Hk=0;if((Zk|0)<1){break e}ea=ea<<2;Yk=ea+wk|0;cl=ea+vk|0;while(1){xk=Hk<<2;ea=xk+Yk|0;xk=p[xk+cl>>2]+p[xk+_k>>2]|0;p[ea>>2]=xk;l:{if((xk|0)>p[dl>>2]){xk=xk-p[hl>>2]|0}else{if((xk|0)>=p[il>>2]){break l}xk=xk+p[hl>>2]|0}p[ea>>2]=xk}Hk=Hk+1|0;Zk=p[al>>2];if((Hk|0)<(Zk|0)){continue}break}break e}if((Zk|0)<1){break e}cl=(v($k+ -1|0,Gk)<<2)+wk|0;Yk=0;while(1){xk=Yk<<2;Hk=p[xk+cl>>2];Zk=p[dl>>2];m:{if((Hk|0)>(Zk|0)){_k=p[el>>2];p[xk+_k>>2]=Zk;break m}_k=p[el>>2];xk=xk+_k|0;Zk=p[il>>2];if((Hk|0)<(Zk|0)){p[xk>>2]=Zk;break m}p[xk>>2]=Hk}Yk=Yk+1|0;Zk=p[al>>2];if((Yk|0)<(Zk|0)){continue}break}Hk=0;if((Zk|0)<1){break e}ea=ea<<2;Yk=ea+wk|0;cl=ea+vk|0;while(1){xk=Hk<<2;ea=xk+Yk|0;xk=p[xk+cl>>2]+p[xk+_k>>2]|0;p[ea>>2]=xk;n:{if((xk|0)>p[dl>>2]){xk=xk-p[hl>>2]|0}else{if((xk|0)>=p[il>>2]){break n}xk=xk+p[hl>>2]|0}p[ea>>2]=xk}Hk=Hk+1|0;Zk=p[al>>2];if((Hk|0)<(Zk|0)){continue}break}}$k=$k+1|0;if(($k|0)<(ll|0)){continue}break}}rh(jl);rh(fl);return 1}function jd(ea){ea=ea|0;var vk=0;p[ea>>2]=5164;vk=p[ea+96>>2];if(vk){rh(vk)}vk=p[ea+84>>2];if(vk){rh(vk)}vk=p[ea+72>>2];if(vk){rh(vk)}vk=p[ea+60>>2];if(vk){rh(vk)}p[ea>>2]=2884;vk=p[ea+32>>2];if(vk){p[ea+36>>2]=vk;rh(vk)}return ea|0}function kd(ea){ea=ea|0;var wk=0;p[ea>>2]=5164;wk=p[ea+96>>2];if(wk){rh(wk)}wk=p[ea+84>>2];if(wk){rh(wk)}wk=p[ea+72>>2];if(wk){rh(wk)}wk=p[ea+60>>2];if(wk){rh(wk)}p[ea>>2]=2884;wk=p[ea+32>>2];if(wk){p[ea+36>>2]=wk;rh(wk)}rh(ea)}function ld(ea,xk,Gk,Hk,sl,tl){ea=ea|0;xk=xk|0;Gk=Gk|0;Hk=Hk|0;sl=sl|0;tl=tl|0;var ul=0,vl=0,wl=0,xl=0,yl=0,zl=0,Al=0,Bl=0,Cl=0,Dl=0,El=0,Fl=0,Gl=0,Hl=0,Il=0,Jl=0,Kl=0,Ll=0,Ml=0,Nl=0,Ol=0,Pl=0,Ql=0,Rl=0,Sl=0;wl=S+ -64|0;S=wl;p[ea+8>>2]=sl;tl=ea+32|0;xl=p[tl>>2];Hk=p[ea+36>>2]-xl>>2;a:{if(Hk>>>0>>0){vb(tl,sl-Hk|0);break a}if(Hk>>>0<=sl>>>0){break a}p[ea+36>>2]=xl+(sl<<2)}p[wl+56>>2]=0;p[wl+60>>2]=0;p[wl+48>>2]=0;p[wl+52>>2]=0;p[wl+40>>2]=0;p[wl+44>>2]=0;Hk=wl+32|0;p[Hk>>2]=0;p[Hk+4>>2]=0;p[wl+24>>2]=0;p[wl+28>>2]=0;p[wl+16>>2]=0;p[wl+20>>2]=0;p[wl>>2]=0;tl=0;if(sl){wb(wl+16|0,sl,wl);vl=p[wl+28>>2];tl=p[Hk>>2]}p[wl>>2]=0;Hk=tl-vl>>2;b:{if(Hk>>>0>=sl>>>0){if(Hk>>>0<=sl>>>0){break b}p[wl+32>>2]=(sl<<2)+vl;break b}wb(wl+16|12,sl-Hk|0,wl)}p[wl>>2]=0;tl=p[wl+40>>2];Hk=p[wl+44>>2]-tl>>2;c:{if(Hk>>>0>=sl>>>0){if(Hk>>>0<=sl>>>0){break c}p[wl+44>>2]=tl+(sl<<2);break c}wb(wl+40|0,sl-Hk|0,wl)}p[wl>>2]=0;tl=p[wl+52>>2];Hk=p[wl+56>>2]-tl>>2;d:{if(Hk>>>0>=sl>>>0){if(Hk>>>0<=sl>>>0){break d}p[wl+56>>2]=tl+(sl<<2);break d}wb(wl+52|0,sl-Hk|0,wl)}zl=ea+8|0;e:{if(p[zl>>2]<=0){break e}Bl=p[wl+16>>2];vl=0;yl=ea+16|0;Hk=ea+32|0;Gl=ea+12|0;while(1){tl=vl<<2;ul=p[tl+Bl>>2];Cl=p[yl>>2];f:{if((ul|0)>(Cl|0)){xl=p[Hk>>2];p[tl+xl>>2]=Cl;break f}xl=p[Hk>>2];tl=tl+xl|0;Cl=p[Gl>>2];if((ul|0)<(Cl|0)){p[tl>>2]=Cl;break f}p[tl>>2]=ul}vl=vl+1|0;tl=p[zl>>2];if((vl|0)<(tl|0)){continue}break}if((tl|0)<1){break e}tl=0;zl=ea+16|0;vl=ea+20|0;Bl=ea+8|0;yl=ea+12|0;while(1){ul=tl<<2;Hk=ul+Gk|0;ul=p[xk+ul>>2]+p[ul+xl>>2]|0;p[Hk>>2]=ul;g:{if((ul|0)>p[zl>>2]){ul=ul-p[vl>>2]|0}else{if((ul|0)>=p[yl>>2]){break g}ul=ul+p[vl>>2]|0}p[Hk>>2]=ul}tl=tl+1|0;if((tl|0)>2]){continue}break}}Rl=p[ea+52>>2];Ol=p[ea+48>>2];Nl=Bg(16);Hk=Nl;p[Hk>>2]=0;p[Hk+4>>2]=0;p[Hk+8>>2]=0;p[Hk+12>>2]=0;p[wl+8>>2]=0;p[wl>>2]=0;p[wl+4>>2]=0;h:{if(sl){if(sl>>>0>=1073741824){break h}Hk=sl<<2;Hl=Bg(Hk);p[wl>>2]=Hl;tl=Hk+Hl|0;p[wl+8>>2]=tl;uh(Hl,0,Hk);p[wl+4>>2]=tl}xl=1;Hk=p[ea+56>>2];Pl=p[Hk>>2];Hk=p[Hk+4>>2]-Pl|0;i:{if((Hk|0)<5){break i}Ql=Hk>>2;Sl=sl<<2;Bl=ea+8|0;Gl=ea+16|0;Cl=ea+32|0;Kl=ea+20|0;Ll=ea+12|0;zl=1;while(1){j:{k:{l:{if(Ql>>>0>zl>>>0){m:{n:{xl=p[(zl<<2)+Pl>>2];if((xl|0)==-1){break n}Al=p[Ol+12>>2];Jl=xl+((xl>>>0)%3|0?-1:2)|0;Ml=Al+(Jl<<2)|0;yl=1;tl=0;Hk=xl;o:{while(1){ul=p[Al+(Hk<<2)>>2];p:{if((ul|0)==-1){break p}vl=-1;Fl=p[Rl>>2];Dl=p[Ol>>2];Il=p[Fl+(p[Dl+(ul<<2)>>2]<<2)>>2];El=ul+1|0;El=(El>>>0)%3|0?El:ul+ -2|0;if((El|0)!=-1){El=p[Dl+(El<<2)>>2]}else{El=-1}ul=ul+((ul>>>0)%3|0?-1:2)|0;if((ul|0)!=-1){vl=p[Dl+(ul<<2)>>2]}if((Il|0)>=(zl|0)){break p}ul=p[(El<<2)+Fl>>2];if((ul|0)>=(zl|0)){break p}vl=p[Fl+(vl<<2)>>2];if((vl|0)>=(zl|0)){break p}Dl=p[(wl+16|0)+v(tl,12)>>2];if((sl|0)>=1){Fl=v(sl,vl);ul=v(sl,ul);Il=v(sl,Il);vl=0;while(1){p[Dl+(vl<<2)>>2]=(p[(vl+Fl<<2)+Gk>>2]+p[(ul+vl<<2)+Gk>>2]|0)-p[(vl+Il<<2)+Gk>>2];vl=vl+1|0;if((vl|0)!=(sl|0)){continue}break}}ul=4;tl=tl+1|0;if((tl|0)==4){break o}}q:{if(yl&1){Dl=Hk+1|0;Hk=(Dl>>>0)%3|0?Dl:Hk+ -2|0;ul=-1;if((Hk|0)==-1){break q}Hk=p[Al+(Hk<<2)>>2];ul=-1;if((Hk|0)==-1){break q}ul=Hk+1|0;ul=(ul>>>0)%3|0?ul:Hk+ -2|0;break q}Hk=((Hk>>>0)%3|0?-1:2)+Hk|0;ul=-1;if((Hk|0)==-1){break q}Hk=p[Al+(Hk<<2)>>2];ul=-1;if((Hk|0)==-1){break q}ul=Hk+ -1|0;if((Hk>>>0)%3){break q}ul=Hk+2|0}r:{if((ul|0)==(xl|0)){break r}Hk=ul;ul=(ul|0)!=-1;vl=(ul|yl^-1)&1;Hk=vl?Hk:-1;yl=ul&yl;if(!((Jl|0)==-1|vl)){ul=p[Ml>>2];if((ul|0)==-1){break r}yl=0;if((ul>>>0)%3){Hk=ul+ -1|0}else{Hk=ul+2|0}}if((Hk|0)!=-1){continue}}break}ul=tl;if((ul|0)<1){break n}}Al=(sl|0)<1;if(!Al){uh(Hl,0,Sl)}Hk=ul+ -1|0;yl=(Hk<<2)+Nl|0;Hk=v(Hk,12)+ea|0;Dl=Hk+60|0;Fl=p[Hk- -64>>2];xl=0;Il=p[wl>>2];Hk=0;tl=0;while(1){vl=p[yl>>2];p[yl>>2]=vl+1;if(Fl>>>0<=vl>>>0){break i}s:{if(p[p[Dl>>2]+(vl>>>3&536870908)>>2]>>>(vl&31)&1){break s}tl=tl+1|0;if(Al){break s}El=p[(wl+16|0)+v(Hk,12)>>2];vl=0;while(1){Jl=vl<<2;Ml=Jl+Il|0;p[Ml>>2]=p[Ml>>2]+p[El+Jl>>2];vl=vl+1|0;if((vl|0)!=(sl|0)){continue}break}}Hk=Hk+1|0;if((ul|0)!=(Hk|0)){continue}break}ul=v(sl,zl);Hk=ul;if(!tl){break m}vl=0;if((sl|0)>0){break l}break k}Hk=v(sl,zl)}if(p[Bl>>2]<1){break j}yl=(v(zl+ -1|0,sl)<<2)+Gk|0;vl=0;while(1){tl=vl<<2;ul=p[tl+yl>>2];Al=p[Gl>>2];t:{if((ul|0)>(Al|0)){xl=p[Cl>>2];p[tl+xl>>2]=Al;break t}xl=p[Cl>>2];tl=tl+xl|0;Al=p[Ll>>2];if((ul|0)<(Al|0)){p[tl>>2]=Al;break t}p[tl>>2]=ul}vl=vl+1|0;ul=p[Bl>>2];if((vl|0)<(ul|0)){continue}break}tl=0;if((ul|0)<1){break j}Hk=Hk<<2;vl=Hk+Gk|0;yl=xk+Hk|0;while(1){ul=tl<<2;Hk=ul+vl|0;ul=p[ul+yl>>2]+p[ul+xl>>2]|0;p[Hk>>2]=ul;u:{if((ul|0)>p[Gl>>2]){ul=ul-p[Kl>>2]|0}else{if((ul|0)>=p[Ll>>2]){break u}ul=ul+p[Kl>>2]|0}p[Hk>>2]=ul}tl=tl+1|0;if((tl|0)>2]){continue}break}break j}Qg();E()}while(1){Hk=(vl<<2)+Hl|0;p[Hk>>2]=p[Hk>>2]/(tl|0);vl=vl+1|0;if((vl|0)!=(sl|0)){continue}break}}if(p[Bl>>2]<1){break j}vl=0;while(1){Hk=vl<<2;tl=p[Hk+Hl>>2];yl=p[Gl>>2];v:{if((tl|0)>(yl|0)){xl=p[Cl>>2];p[Hk+xl>>2]=yl;break v}xl=p[Cl>>2];Hk=Hk+xl|0;yl=p[Ll>>2];if((tl|0)<(yl|0)){p[Hk>>2]=yl;break v}p[Hk>>2]=tl}vl=vl+1|0;Hk=p[Bl>>2];if((vl|0)<(Hk|0)){continue}break}tl=0;if((Hk|0)<1){break j}Hk=ul<<2;vl=Hk+Gk|0;yl=xk+Hk|0;while(1){ul=tl<<2;Hk=ul+vl|0;ul=p[ul+yl>>2]+p[ul+xl>>2]|0;p[Hk>>2]=ul;w:{if((ul|0)>p[Gl>>2]){ul=ul-p[Kl>>2]|0}else{if((ul|0)>=p[Ll>>2]){break w}ul=ul+p[Kl>>2]|0}p[Hk>>2]=ul}tl=tl+1|0;if((tl|0)>2]){continue}break}}xl=1;zl=zl+1|0;if((zl|0)<(Ql|0)){continue}break}}ea=p[wl>>2];if(ea){p[wl+4>>2]=ea;rh(ea)}rh(Nl);ea=p[wl+52>>2];if(ea){p[wl+56>>2]=ea;rh(ea)}ea=p[wl+40>>2];if(ea){p[wl+44>>2]=ea;rh(ea)}ea=p[wl+28>>2];if(ea){p[wl+32>>2]=ea;rh(ea)}ea=p[wl+16>>2];if(ea){p[wl+20>>2]=ea;rh(ea)}S=wl- -64|0;return xl|0}Pg();E()}function md(ea){ea=ea|0;var xk=0,Gk=0;p[ea>>2]=5400;xk=p[ea+76>>2];if(xk){rh(xk)}Gk=ea+68|0;xk=p[Gk>>2];p[Gk>>2]=0;if(xk){rh(xk)}p[ea>>2]=2884;xk=p[ea+32>>2];if(xk){p[ea+36>>2]=xk;rh(xk)}return ea|0}function nd(ea){ea=ea|0;var Hk=0,sl=0;p[ea>>2]=5400;Hk=p[ea+76>>2];if(Hk){rh(Hk)}sl=ea+68|0;Hk=p[sl>>2];p[sl>>2]=0;if(Hk){rh(Hk)}p[ea>>2]=2884;Hk=p[ea+32>>2];if(Hk){p[ea+36>>2]=Hk;rh(Hk)}rh(ea)}function od(ea,tl,Tl,Ul,Vl,Wl){ea=ea|0;tl=tl|0;Tl=Tl|0;Ul=Ul|0;Vl=Vl|0;Wl=Wl|0;var Xl=0,Yl=0,Zl=0,_l=0,$l=0,am=0,bm=0,cm=0,dm=0,em=0,fm=0,gm=0;p[ea+64>>2]=Wl;p[ea+72>>2]=Vl;Wl=Bg((Vl&1073741823)!=(Vl|0)?-1:Vl<<2);Ul=p[ea+68>>2];p[ea+68>>2]=Wl;if(Ul){rh(Ul)}p[ea+8>>2]=Vl;Wl=ea+32|0;Xl=p[Wl>>2];Ul=p[ea+36>>2]-Xl>>2;a:{if(Ul>>>0>>0){vb(Wl,Vl-Ul|0);break a}if(Ul>>>0<=Vl>>>0){break a}p[ea+36>>2]=Xl+(Vl<<2)}b:{Ul=p[ea+56>>2];Xl=p[Ul+4>>2];Wl=p[Ul>>2];Ul=Xl-Wl|0;if((Ul|0)<1){break b}if((Wl|0)!=(Xl|0)){fm=Ul>>2;$l=ea+8|0;bm=ea+16|0;cm=ea+32|0;dm=ea+20|0;em=ea+12|0;gm=ea+56|0;while(1){pd(ea,p[(Zl<<2)+Wl>>2],Tl,Zl);c:{if(p[$l>>2]<1){break c}am=p[ea+68>>2];Wl=0;while(1){Ul=Wl<<2;Xl=p[Ul+am>>2];Yl=p[bm>>2];d:{if((Xl|0)>(Yl|0)){_l=p[cm>>2];p[Ul+_l>>2]=Yl;break d}_l=p[cm>>2];Ul=Ul+_l|0;Yl=p[em>>2];if((Xl|0)<(Yl|0)){p[Ul>>2]=Yl;break d}p[Ul>>2]=Xl}Wl=Wl+1|0;Xl=p[$l>>2];if((Wl|0)<(Xl|0)){continue}break}Ul=0;if((Xl|0)<1){break c}Wl=v(Vl,Zl)<<2;am=Wl+Tl|0;Yl=tl+Wl|0;while(1){Xl=Ul<<2;Wl=Xl+am|0;Xl=p[Xl+Yl>>2]+p[Xl+_l>>2]|0;p[Wl>>2]=Xl;e:{if((Xl|0)>p[bm>>2]){Xl=Xl-p[dm>>2]|0}else{if((Xl|0)>=p[em>>2]){break e}Xl=Xl+p[dm>>2]|0}p[Wl>>2]=Xl}Ul=Ul+1|0;if((Ul|0)>2]){continue}break}}Zl=Zl+1|0;if((Zl|0)>=(fm|0)){break b}Ul=p[gm>>2];Wl=p[Ul>>2];if(p[Ul+4>>2]-Wl>>2>>>0>Zl>>>0){continue}break}}Qg();E()}return 1}function pd(ea,tl,Tl,Ul){var Vl=0,Wl=0,hm=0,im=w(0),jm=0,km=w(0),lm=w(0),mm=w(0),nm=w(0),om=w(0),pm=w(0),qm=w(0),rm=0,sm=0,tm=w(0),um=w(0),vm=w(0),wm=w(0),xm=w(0),ym=0,zm=w(0),Am=w(0),Bm=w(0);Vl=S-48|0;S=Vl;Wl=-1;jm=-1;a:{if((tl|0)==-1){break a}hm=((tl>>>0)%3|0?-1:2)+tl|0;rm=p[ea+48>>2];ym=tl+1|0;tl=(ym>>>0)%3|0?ym:tl+ -2|0;if((tl|0)!=-1){Wl=p[p[rm>>2]+(tl<<2)>>2]}if((hm|0)==-1){break a}jm=p[p[rm>>2]+(hm<<2)>>2]}hm=p[ea+52>>2];tl=p[hm>>2];hm=p[hm+4>>2]-tl>>2;if(!(hm>>>0<=Wl>>>0|hm>>>0<=jm>>>0)){b:{c:{Wl=p[tl+(Wl<<2)>>2];rm=(Wl|0)>=(Ul|0);if(rm){break c}hm=p[tl+(jm<<2)>>2];if((hm|0)>=(Ul|0)){break c}tl=p[ea+72>>2];jm=(v(tl,hm)<<2)+Tl|0;km=w(p[jm+4>>2]);tl=(v(tl,Wl)<<2)+Tl|0;qm=w(p[tl+4>>2]);tm=w(p[jm>>2]);wm=w(p[tl>>2]);if(!(tm!=wm|km!=qm)){ea=p[ea+68>>2];tl=ea;if(w(x(km))>2]=Tl;if(w(x(tm))>2]=~~tm;break b}p[ea>>2]=-2147483648;break b}jm=p[p[ea+64>>2]+(Ul<<2)>>2];p[Vl+40>>2]=0;p[Vl+32>>2]=0;p[Vl+36>>2]=0;tl=p[ea+60>>2];if(!q[tl+84|0]){jm=p[p[tl+68>>2]+(jm<<2)>>2]}na(tl,jm,n[tl+24|0],Vl+32|0);Wl=p[p[ea+64>>2]+(Wl<<2)>>2];p[Vl+24>>2]=0;p[Vl+16>>2]=0;p[Vl+20>>2]=0;tl=p[ea+60>>2];if(!q[tl+84|0]){Wl=p[p[tl+68>>2]+(Wl<<2)>>2]}na(tl,Wl,n[tl+24|0],Vl+16|0);Tl=p[p[ea+64>>2]+(hm<<2)>>2];p[Vl+8>>2]=0;p[Vl>>2]=0;p[Vl+4>>2]=0;tl=p[ea+60>>2];if(!q[tl+84|0]){Tl=p[p[tl+68>>2]+(Tl<<2)>>2]}na(tl,Tl,n[tl+24|0],Vl);um=t[Vl+40>>2];vm=t[Vl+36>>2];mm=t[Vl+32>>2];zm=t[Vl+16>>2];lm=w(t[Vl>>2]-zm);Am=t[Vl+20>>2];nm=w(t[Vl+4>>2]-Am);Bm=t[Vl+24>>2];om=w(t[Vl+8>>2]-Bm);xm=w(w(w(w(lm*lm)+w(0))+w(nm*nm))+w(om*om));d:{if(!(xm>w(0))){pm=w(0);if(p[ea+88>>2]>257){break d}}mm=w(mm-zm);vm=w(vm-Am);um=w(um-Bm);im=w(w(w(w(w(lm*mm)+w(0))+w(nm*vm))+w(om*um))/xm);om=w(um-w(om*im));nm=w(vm-w(nm*im));lm=w(mm-w(lm*im));pm=w(D(w(w(w(om*om)+w(w(nm*nm)+w(w(lm*lm)+w(0))))/xm)))}mm=pm;Tl=ea+80|0;tl=p[Tl>>2]+ -1|0;Ul=p[p[ea+76>>2]+(tl>>>3&536870908)>>2];p[Tl>>2]=tl;lm=w(km-qm);pm=w(w(lm*im)+qm);qm=w(tm-wm);km=w(qm*mm);tl=Ul>>>(tl&31)&1;km=w(pm+(tl?km:w(-km)));pm=w(w(qm*im)+wm);im=w(lm*mm);im=w(pm+(tl?w(-im):im));e:{if(((j(im),e(0))&2147483647)>>>0>=2139095041){tl=p[ea+68>>2];p[tl>>2]=-2147483648;break e}tl=p[ea+68>>2];ea=tl;sm=B(+im+.5);f:{if(x(sm)<2147483648){Tl=~~sm;break f}Tl=-2147483648}p[ea>>2]=Tl}Tl=((j(km),e(0))&2147483647)>>>0>2139095040;sm=B(+km+.5);g:{if(x(sm)<2147483648){ea=~~sm;break g}ea=-2147483648}p[tl+4>>2]=Tl?-2147483648:ea;break b}h:{if(!rm){tl=p[ea+72>>2];Ul=v(Wl,tl);break h}if((Ul|0)<=0){if(p[ea+72>>2]<1){break b}Tl=p[ea+68>>2];tl=0;while(1){p[Tl+(tl<<2)>>2]=0;tl=tl+1|0;if((tl|0)>2]){continue}break}break b}tl=p[ea+72>>2];Ul=v(tl,Ul+ -1|0)}if((tl|0)<1){break b}Wl=p[ea+68>>2];tl=0;while(1){p[Wl+(tl<<2)>>2]=p[(tl+Ul<<2)+Tl>>2];tl=tl+1|0;if((tl|0)>2]){continue}break}}S=Vl+48|0;return}Qg();E()}function qd(ea){ea=ea|0;var tl=0;p[ea>>2]=5616;tl=p[ea+76>>2];if(tl){rh(tl)}p[ea>>2]=2884;tl=p[ea+32>>2];if(tl){p[ea+36>>2]=tl;rh(tl)}return ea|0}function rd(ea){ea=ea|0;var Tl=0;p[ea>>2]=5616;Tl=p[ea+76>>2];if(Tl){rh(Tl)}p[ea>>2]=2884;Tl=p[ea+32>>2];if(Tl){p[ea+36>>2]=Tl;rh(Tl)}rh(ea)}function sd(ea,Ul,Cm,Dm,Em,Fm){ea=ea|0;Ul=Ul|0;Cm=Cm|0;Dm=Dm|0;Em=Em|0;Fm=Fm|0;var Gm=0,Hm=0,Im=0,Jm=0,Km=0,Lm=0,Mm=0,Nm=0,Om=0,Pm=0,Qm=0,Rm=0;Dm=0;a:{if((Em|0)!=2){break a}p[ea+8>>2]=2;p[ea- -64>>2]=Fm;Dm=ea+32|0;Em=p[Dm>>2];Fm=p[ea+36>>2]-Em|0;Gm=Fm>>2;b:{if(Gm>>>0<=1){vb(Dm,2-Gm|0);break b}if((Fm|0)==8){break b}p[ea+36>>2]=Em+8}Dm=1;Em=p[ea+56>>2];Fm=p[Em+4>>2];Em=p[Em>>2];Gm=Fm-Em|0;if((Gm|0)<1){break a}if((Em|0)!=(Fm|0)){Om=ea+60|0;Pm=Gm>>2;Gm=ea+8|0;Km=ea+16|0;Lm=ea+32|0;Mm=ea+20|0;Nm=ea+12|0;Qm=ea+56|0;while(1){if(!td(Om,p[(Im<<2)+Em>>2],Cm,Im)){Dm=0;break a}c:{if(p[Gm>>2]<1){break c}Em=0;while(1){Dm=Em<<2;Fm=p[(Dm+ea|0)+68>>2];Hm=p[Km>>2];d:{if((Fm|0)>(Hm|0)){Jm=p[Lm>>2];p[Dm+Jm>>2]=Hm;break d}Jm=p[Lm>>2];Dm=Dm+Jm|0;Hm=p[Nm>>2];if((Fm|0)<(Hm|0)){p[Dm>>2]=Hm;break d}p[Dm>>2]=Fm}Em=Em+1|0;Dm=p[Gm>>2];if((Em|0)<(Dm|0)){continue}break}Fm=0;if((Dm|0)<1){break c}Dm=Im<<3;Hm=Dm+Cm|0;Rm=Ul+Dm|0;while(1){Em=Fm<<2;Dm=Em+Hm|0;Em=p[Em+Rm>>2]+p[Em+Jm>>2]|0;p[Dm>>2]=Em;e:{if((Em|0)>p[Km>>2]){Em=Em-p[Mm>>2]|0}else{if((Em|0)>=p[Nm>>2]){break e}Em=Em+p[Mm>>2]|0}p[Dm>>2]=Em}Fm=Fm+1|0;if((Fm|0)>2]){continue}break}}Dm=1;Im=Im+1|0;if((Im|0)>=(Pm|0)){break a}Dm=p[Qm>>2];Em=p[Dm>>2];if(p[Dm+4>>2]-Em>>2>>>0>Im>>>0){continue}break}}Qg();E()}return Dm|0}function td(ea,Ul,Cm,Dm){var Em=0,Fm=0,Sm=0,Tm=0,Um=0,Vm=0,Wm=0,Xm=0,Ym=0,Zm=0,_m=0,$m=0,an=0,bn=0,cn=0,dn=0,en=0,fn=0,gn=0,hn=0,jn=0,kn=0,ln=0,mn=0,nn=0;Sm=S-80|0;S=Sm;Em=-1;Fm=-1;a:{if((Ul|0)==-1){break a}Tm=((Ul>>>0)%3|0?-1:2)+Ul|0;Um=p[ea+32>>2];Wm=Ul+1|0;Ul=(Wm>>>0)%3|0?Wm:Ul+ -2|0;if((Ul|0)!=-1){Em=p[p[Um>>2]+(Ul<<2)>>2]}if((Tm|0)==-1){break a}Fm=p[p[Um>>2]+(Tm<<2)>>2]}Tm=p[ea+36>>2];Ul=p[Tm>>2];b:{c:{d:{e:{Tm=p[Tm+4>>2]-Ul>>2;if(!(Tm>>>0<=Em>>>0|Tm>>>0<=Fm>>>0)){f:{g:{Zm=p[Ul+(Em<<2)>>2];$m=(Zm|0)>=(Dm|0);if($m){break g}Fm=p[Ul+(Fm<<2)>>2];if((Fm|0)>=(Dm|0)){break g}Ul=Fm<<3;en=p[(Ul|4)+Cm>>2];Em=Zm<<3;Wm=p[(Em|4)+Cm>>2];bn=p[Ul+Cm>>2];dn=p[Cm+Em>>2];if(!((bn|0)!=(dn|0)|(Wm|0)!=(en|0))){p[ea+8>>2]=dn;p[ea+12>>2]=Wm;break f}Ul=p[p[ea+4>>2]+(Dm<<2)>>2];p[Sm+72>>2]=0;p[Sm+76>>2]=0;Em=Sm- -64|0;p[Em>>2]=0;p[Em+4>>2]=0;p[Sm+56>>2]=0;p[Sm+60>>2]=0;Em=p[ea>>2];if(!q[Em+84|0]){Ul=p[p[Em+68>>2]+(Ul<<2)>>2]}Xc(Em,Ul,n[Em+24|0],Sm+56|0);Ul=p[p[ea+4>>2]+(Zm<<2)>>2];p[Sm+48>>2]=0;p[Sm+52>>2]=0;p[Sm+40>>2]=0;p[Sm+44>>2]=0;p[Sm+32>>2]=0;p[Sm+36>>2]=0;Em=p[ea>>2];if(!q[Em+84|0]){Ul=p[p[Em+68>>2]+(Ul<<2)>>2]}Xc(Em,Ul,n[Em+24|0],Sm+32|0);Ul=p[p[ea+4>>2]+(Fm<<2)>>2];p[Sm+24>>2]=0;p[Sm+28>>2]=0;p[Sm+16>>2]=0;p[Sm+20>>2]=0;p[Sm+8>>2]=0;p[Sm+12>>2]=0;Em=p[ea>>2];if(!q[Em+84|0]){Ul=p[p[Em+68>>2]+(Ul<<2)>>2]}Xc(Em,Ul,n[Em+24|0],Sm+8|0);fn=p[Sm+44>>2];Ul=p[Sm+16>>2];Vm=p[Sm+40>>2];Em=Vm;Fm=p[Sm+20>>2]-(fn+(Ul>>>0>>0)|0)|0;hn=Ul-Em|0;Ul=Sh(hn,Fm,hn,Fm);Em=U;Ym=Ul;gn=p[Sm+36>>2];Ul=p[Sm+8>>2];Xm=p[Sm+32>>2];Um=Xm;Tm=p[Sm+12>>2]-(gn+(Ul>>>0>>0)|0)|0;jn=Ul-Um|0;Um=Sh(jn,Tm,jn,Tm);Ul=Ym+Um|0;Em=U+Em|0;Em=Ul>>>0>>0?Em+1|0:Em;an=Ul;ln=p[Sm+52>>2];Ul=p[Sm+24>>2];Ym=p[Sm+48>>2];Um=Ym;_m=p[Sm+28>>2]-(ln+(Ul>>>0>>0)|0)|0;kn=Ul-Um|0;Um=Sh(kn,_m,kn,_m);Ul=an+Um|0;Em=U+Em|0;cn=Ul;Um=Ul>>>0>>0?Em+1|0:Em;if(!(Ul|Um)){break g}Dm=1;Ul=0;Em=p[Sm+64>>2];Cm=p[Sm+68>>2]-((Em>>>0>>0)+fn|0)|0;Em=Em-Vm|0;Zm=Em;$m=Cm;Cm=Sh(hn,Fm,Em,Cm);Em=U;an=Cm;Vm=p[Sm+56>>2];Cm=Vm-Xm|0;fn=p[Sm+60>>2]-((Vm>>>0>>0)+gn|0)|0;Xm=Sh(Cm,fn,jn,Tm);Vm=an+Xm|0;Em=U+Em|0;Em=Vm>>>0>>0?Em+1|0:Em;an=Vm;Vm=p[Sm+72>>2];Xm=Vm-Ym|0;gn=p[Sm+76>>2]-((Vm>>>0>>0)+ln|0)|0;Ym=Sh(Xm,gn,kn,_m);Vm=an+Ym|0;Em=U+Em|0;Em=Vm>>>0>>0?Em+1|0:Em;Ym=Vm;Vm=Em;Fm=Th(Sh(Ym,Em,hn,Fm),U,cn,Um);$m=$m-(U+(Zm>>>0>>0)|0)|0;Fm=Zm-Fm|0;Fm=Sh(Fm,$m,Fm,$m);Zm=U;an=Fm;Em=Th(Sh(jn,Tm,Ym,Em),U,cn,Um);Fm=fn-(U+(Cm>>>0>>0)|0)|0;Cm=Cm-Em|0;Fm=Sh(Cm,Fm,Cm,Fm);Cm=an+Fm|0;Em=U+Zm|0;Em=Cm>>>0>>0?Em+1|0:Em;Tm=Cm;Cm=Th(Sh(Ym,Vm,kn,_m),U,cn,Um);Fm=gn-(U+(Xm>>>0>>0)|0)|0;Cm=Xm-Cm|0;Fm=Sh(Cm,Fm,Cm,Fm);Cm=Tm+Fm|0;Em=U+Em|0;Fm=Sh(Cm,Cm>>>0>>0?Em+1|0:Em,cn,Um);Cm=U;Tm=Cm;if(!Cm&Fm>>>0<=1|Cm>>>0<0){break e}_m=Fm;Cm=Tm;while(1){Em=Ul<<1|Dm>>>31;Dm=Dm<<1;Ul=Em;Xm=!Cm&_m>>>0>7|Cm>>>0>0;_m=(Cm&3)<<30|_m>>>2;Cm=Cm>>>2;if(Xm){continue}break}break d}Em=ea;if($m){if((Dm|0)<=0){p[ea+8>>2]=0;p[ea+12>>2]=0;break f}Ul=(Dm<<1)+ -2|0}else{Ul=Zm<<1}Ul=(Ul<<2)+Cm|0;p[Em+8>>2]=p[Ul>>2];p[ea+12>>2]=p[Ul+4>>2]}Cm=1;break b}Qg();E()}Dm=Fm;Ul=Tm;if(Fm-1){break c}}while(1){Cm=Uh(Fm,Tm,Dm,Ul)+Dm|0;Em=Ul+U|0;Em=Cm>>>0>>0?Em+1|0:Em;Dm=(Em&1)<<31|Cm>>>1;Ul=Em>>>1;Cm=Sh(Dm,Ul,Dm,Ul);Em=U;if((Tm|0)==(Em|0)&Cm>>>0>Fm>>>0|Em>>>0>Tm>>>0){continue}break}}Em=p[ea+20>>2];Cm=0;if(!Em){break b}Tm=Em+ -1|0;_m=p[p[ea+16>>2]+(Tm>>>3&536870908)>>2];p[ea+20>>2]=Tm;Cm=en;Em=Wm;Xm=Cm-Em|0;Wm=Em>>31;en=(Cm>>31)-(Wm+(Cm>>>0>>0)|0)|0;Cm=Sh(Ym,Vm,Xm,en);Fm=U;Wm=Sh(Em,Wm,cn,Um);Cm=Wm+Cm|0;Em=U+Fm|0;Em=Cm>>>0>>0?Em+1|0:Em;an=Cm;Cm=bn;Fm=dn;Zm=Cm-Fm|0;dn=Fm>>31;Wm=(Cm>>31)-(dn+(Cm>>>0>>0)|0)|0;Cm=Sh(Dm,Ul,Zm,Wm);bn=Cm;Cm=_m>>>(Tm&31)&1;$m=Cm?0-bn|0:bn;Tm=an+$m|0;_m=Em;Em=U;Em=_m+(Cm?0-(Em+(0>>0)|0)|0:Em)|0;mn=ea,nn=Th(Tm,Tm>>>0<$m>>>0?Em+1|0:Em,cn,Um),p[mn+12>>2]=nn;Em=Sh(Ym,Vm,Zm,Wm);Tm=U;bn=ea;Fm=Sh(Fm,dn,cn,Um);ea=Fm+Em|0;Em=U+Tm|0;Em=ea>>>0>>0?Em+1|0:Em;Vm=ea;ea=Sh(Dm,Ul,Xm,en);Dm=Cm?ea:0-ea|0;Ul=Vm+Dm|0;Vm=Em;Em=U;ea=Vm+(Cm?Em:0-((0>>0)+Em|0)|0)|0;mn=bn,nn=Th(Ul,Ul>>>0>>0?ea+1|0:ea,cn,Um),p[mn+8>>2]=nn;Cm=1}S=Sm+80|0;return Cm}function ud(ea){ea=ea|0;var Ul=0;p[ea>>2]=5840;p[ea>>2]=2884;Ul=p[ea+32>>2];if(Ul){p[ea+36>>2]=Ul;rh(Ul)}return ea|0}function vd(ea){ea=ea|0;var Cm=0;p[ea>>2]=5840;p[ea>>2]=2884;Cm=p[ea+32>>2];if(Cm){p[ea+36>>2]=Cm;rh(Cm)}rh(ea)}function wd(ea,Dm,on,pn,qn,rn){ea=ea|0;Dm=Dm|0;on=on|0;pn=pn|0;qn=qn|0;rn=rn|0;var sn=0,tn=0,un=0,vn=0,wn=0,xn=0,yn=0,zn=0,An=0,Bn=0,Cn=0,Dn=0,En=0,Fn=0,Gn=0;tn=S-32|0;S=tn;p[ea+68>>2]=rn;pn=p[ea+56>>2];qn=p[pn>>2];rn=pn+4|0;sn=p[rn>>2];p[tn+24>>2]=0;p[tn+16>>2]=0;p[tn+20>>2]=0;a:{qn=sn-qn|0;if((qn|0)<1){break a}pn=p[pn>>2];if((pn|0)!=p[rn>>2]){Dn=qn>>2;En=ea+60|0;Fn=ea+108|0;yn=ea+8|0;zn=ea+16|0;An=ea+32|0;Bn=ea+20|0;Cn=ea+12|0;Gn=ea+56|0;while(1){xd(En,p[(wn<<2)+pn>>2],tn+16|0);qn=p[tn+20>>2];sn=qn>>31;rn=p[tn+16>>2];un=rn>>31;xn=p[tn+24>>2];vn=xn>>31;pn=0;vn=vn^vn+xn;sn=vn+((sn^qn+sn)+(un^rn+un)|0)|0;if(sn>>>0>>0){pn=1}b:{if(!(pn|sn)){p[tn+16>>2]=p[ea+104>>2];break b}un=p[ea+104>>2];vn=un>>31;qn=Th(Sh(un,vn,qn,qn>>31),U,sn,pn);p[tn+20>>2]=qn;pn=Th(Sh(un,vn,rn,rn>>31),U,sn,pn);p[tn+16>>2]=pn;rn=pn;pn=pn>>31;pn=(un-(rn+pn^pn)|0)+((qn|0)<0?qn:0-qn|0)|0;if((xn|0)>=0){p[tn+24>>2]=pn;break b}p[tn+24>>2]=0-pn}pn=oe(Fn);rn=p[tn+16>>2];c:{if(!pn){qn=p[tn+20>>2];break c}p[tn+24>>2]=0-p[tn+24>>2];qn=0-p[tn+20>>2]|0;p[tn+20>>2]=qn;rn=0-rn|0;p[tn+16>>2]=rn}d:{if((rn|0)>=0){pn=p[ea+104>>2];rn=pn+p[tn+24>>2]|0;pn=pn+qn|0;break d}e:{if((qn|0)<=-1){rn=p[tn+24>>2];pn=rn>>31;pn=pn^pn+rn;break e}rn=p[tn+24>>2];pn=rn>>31;pn=p[ea+100>>2]-(pn^pn+rn)|0}if((rn|0)<=-1){rn=qn;qn=qn>>31;rn=rn+qn^qn;break d}rn=qn;qn=qn>>31;rn=p[ea+100>>2]-(rn+qn^qn)|0}qn=p[ea+100>>2];f:{if(!(pn|rn)){rn=qn;pn=qn;break f}if(!((qn|0)!=(rn|0)|pn)){pn=rn;break f}if(!((pn|0)!=(qn|0)|rn)){rn=pn;break f}g:{if(pn){break g}sn=p[ea+104>>2];if((sn|0)>=(rn|0)){break g}rn=(sn<<1)-rn|0;pn=0;break f}h:{if((pn|0)!=(qn|0)){break h}sn=p[ea+104>>2];if((sn|0)<=(rn|0)){break h}rn=(sn<<1)-rn|0;break f}i:{if((qn|0)!=(rn|0)){break i}qn=p[ea+104>>2];if((qn|0)<=(pn|0)){break i}pn=(qn<<1)-pn|0;break f}if(rn){break f}rn=0;qn=p[ea+104>>2];if((qn|0)>=(pn|0)){break f}pn=(qn<<1)-pn|0}p[tn+12>>2]=rn;p[tn+8>>2]=pn;j:{if(p[yn>>2]<1){break j}rn=0;while(1){sn=p[zn>>2];k:{if((pn|0)>(sn|0)){qn=p[An>>2];p[qn+(rn<<2)>>2]=sn;break k}qn=p[An>>2];sn=qn+(rn<<2)|0;un=p[Cn>>2];if((pn|0)<(un|0)){p[sn>>2]=un;break k}p[sn>>2]=pn}rn=rn+1|0;sn=p[yn>>2];if((rn|0)<(sn|0)){pn=p[(tn+8|0)+(rn<<2)>>2];continue}break}pn=0;if((sn|0)<1){break j}rn=wn<<3;un=rn+on|0;xn=Dm+rn|0;while(1){sn=pn<<2;rn=sn+un|0;sn=p[sn+xn>>2]+p[qn+sn>>2]|0;p[rn>>2]=sn;l:{if((sn|0)>p[zn>>2]){vn=sn-p[Bn>>2]|0}else{if((sn|0)>=p[Cn>>2]){break l}vn=sn+p[Bn>>2]|0}p[rn>>2]=vn}pn=pn+1|0;if((pn|0)>2]){continue}break}}wn=wn+1|0;if((wn|0)>=(Dn|0)){break a}qn=p[Gn>>2];pn=p[qn>>2];if(p[qn+4>>2]-pn>>2>>>0>wn>>>0){continue}break}}Qg();E()}S=tn+32|0;return 1}function xd(ea,Dm,on){ea=ea|0;Dm=Dm|0;on=on|0;var pn=0,qn=0,rn=0,Hn=0,In=0,Jn=0,Kn=0,Ln=0,Mn=0,Nn=0,On=0,Pn=0,Qn=0,Rn=0,Sn=0,Tn=0,Un=0,Vn=0,Wn=0,Xn=0,Yn=0,Zn=0,_n=0,$n=0,ao=0,bo=0;rn=S-96|0;S=rn;qn=p[ea+16>>2];n[rn+92|0]=1;p[rn+88>>2]=Dm;p[rn+84>>2]=Dm;p[rn+80>>2]=qn;pn=-1;pn=(Dm|0)!=-1?p[p[qn>>2]+(Dm<<2)>>2]:pn;Hn=p[ea+20>>2];qn=p[Hn>>2];a:{b:{c:{d:{if(p[Hn+4>>2]-qn>>2>>>0>pn>>>0){qn=p[p[ea+8>>2]+(p[qn+(pn<<2)>>2]<<2)>>2];pn=p[ea+4>>2];if(!q[pn+84|0]){qn=p[p[pn+68>>2]+(qn<<2)>>2]}p[rn+72>>2]=0;p[rn+76>>2]=0;Hn=rn- -64|0;p[Hn>>2]=0;p[Hn+4>>2]=0;p[rn+56>>2]=0;p[rn+60>>2]=0;Xc(pn,qn,n[pn+24|0],rn+56|0);if((Dm|0)==-1){break a}pn=Dm+1|0;Hn=(pn>>>0)%3|0?pn:Dm+ -2|0;Rn=((Dm>>>0)%3|0?-1:2)+Dm|0;Yn=ea+28|0;In=!p[Yn>>2];Zn=ea+20|0;_n=ea+8|0;$n=rn+48|0;while(1){qn=Hn;pn=Rn;e:{if(In){break e}pn=Dm+1|0;qn=(pn>>>0)%3|0?pn:Dm+ -2|0;pn=Dm+ -1|0;if((Dm>>>0)%3){break e}pn=Dm+2|0}Dm=-1;Dm=(qn|0)!=-1?p[p[p[ea+16>>2]>>2]+(qn<<2)>>2]:Dm;In=p[Zn>>2];qn=p[In>>2];if(p[In+4>>2]-qn>>2>>>0<=Dm>>>0){break d}qn=p[p[_n>>2]+(p[qn+(Dm<<2)>>2]<<2)>>2];In=ea+4|0;Dm=p[In>>2];if(!q[Dm+84|0]){qn=p[p[Dm+68>>2]+(qn<<2)>>2]}p[$n>>2]=0;p[$n+4>>2]=0;p[rn+40>>2]=0;p[rn+44>>2]=0;p[rn+32>>2]=0;p[rn+36>>2]=0;Xc(Dm,qn,n[Dm+24|0],rn+32|0);Dm=-1;Dm=(pn|0)!=-1?p[p[p[ea+16>>2]>>2]+(pn<<2)>>2]:Dm;qn=p[Zn>>2];pn=p[qn>>2];if(p[qn+4>>2]-pn>>2>>>0<=Dm>>>0){break c}pn=p[p[_n>>2]+(p[pn+(Dm<<2)>>2]<<2)>>2];Dm=p[In>>2];if(!q[Dm+84|0]){pn=p[p[Dm+68>>2]+(pn<<2)>>2]}qn=rn+24|0;p[qn>>2]=0;p[qn+4>>2]=0;In=rn+16|0;p[In>>2]=0;p[In+4>>2]=0;p[rn+8>>2]=0;p[rn+12>>2]=0;Xc(Dm,pn,n[Dm+24|0],rn+8|0);pn=p[rn+8>>2];Dm=p[rn+56>>2];Sn=pn-Dm|0;Tn=p[rn+60>>2];Ln=p[rn+12>>2]-(Tn+(pn>>>0>>0)|0)|0;Un=p[rn+40>>2];pn=p[rn+64>>2];ao=Un-pn|0;Vn=p[rn+68>>2];Un=p[rn+44>>2]-(Vn+(Un>>>0>>0)|0)|0;Wn=Sh(Sn,Ln,ao,Un);Xn=Jn-Wn|0;Mn=Mn-(U+(Jn>>>0>>0)|0)|0;Jn=p[In>>2];Wn=Jn-pn|0;In=p[In+4>>2]-((Jn>>>0>>0)+Vn|0)|0;Jn=p[rn+32>>2];Vn=Jn-Dm|0;Tn=p[rn+36>>2]-((Jn>>>0>>0)+Tn|0)|0;pn=Sh(Wn,In,Vn,Tn);Jn=pn+Xn|0;Dm=U+Mn|0;Dm=Jn>>>0>>0?Dm+1|0:Dm;Mn=Dm;pn=Kn;On=Sn;bo=Ln;Kn=p[rn+48>>2];Dm=p[rn+72>>2];Ln=Kn-Dm|0;Sn=p[rn+76>>2];Xn=p[rn+52>>2]-(Sn+(Kn>>>0>>0)|0)|0;On=Sh(On,bo,Ln,Xn);Kn=pn+On|0;pn=U+Pn|0;pn=Kn>>>0>>0?pn+1|0:pn;Pn=Kn;Kn=p[qn>>2];On=Kn-Dm|0;Dm=p[qn+4>>2]-((Kn>>>0>>0)+Sn|0)|0;qn=Sh(On,Dm,Vn,Tn);Kn=Pn-qn|0;Pn=pn-(U+(Pn>>>0>>0)|0)|0;pn=Sh(Wn,In,Ln,Xn);qn=Nn-pn|0;Qn=Qn-(U+(Nn>>>0>>0)|0)|0;pn=Sh(On,Dm,ao,Un);Nn=pn+qn|0;Dm=U+Qn|0;Dm=Nn>>>0>>0?Dm+1|0:Dm;Qn=Dm;yd(rn+80|0);Ln=p[Yn>>2];In=!Ln;Dm=p[rn+88>>2];if((Dm|0)!=-1){continue}break}Dm=Pn;pn=Dm>>31;ea=Dm>>31;Dm=ea+Dm|0;Hn=pn+Kn|0;if(Hn>>>0>>0){Dm=Dm+1|0}pn=pn^Hn;In=ea^Dm;Dm=Qn;ea=Dm>>31;Dm=Dm>>31;Hn=ea;Rn=Qn+ea|0;qn=Dm+Nn|0;if(qn>>>0>>0){Rn=Rn+1|0}ea=Dm^qn;qn=Hn^Rn;f:{if((Mn|0)<-1?1:(Mn|0)<=-1?Jn>>>0>4294967295?0:1:0){Dm=Jn;Hn=ea+(pn-Dm|0)|0;Dm=qn+(In-((pn>>>0>>0)+Mn|0)|0)|0;pn=Hn;ea=pn>>>0>>0?Dm+1|0:Dm;if(!Ln){break f}break b}Dm=In+Mn|0;Hn=pn;pn=Jn;Hn=Hn+pn|0;if(Hn>>>0>>0){Dm=Dm+1|0}pn=ea;Hn=pn+Hn|0;ea=Dm+qn|0;ea=Hn>>>0>>0?ea+1|0:ea;pn=Hn;if(Ln){break b}}if((pn|0)<536870913){break a}ea=((ea&536870911)<<3|pn>>>29)&7;Dm=0;Jn=Th(Jn,Mn,ea,Dm);Kn=Th(Kn,Pn,ea,Dm);Nn=Th(Nn,Qn,ea,Dm);break a}Qg();E()}Qg();E()}Qg();E()}if((ea|0)<0?1:(ea|0)<=0?pn>>>0>=536870913?0:1:0){break a}Dm=ea>>>29;ea=(ea&536870911)<<3|pn>>>29;Jn=Th(Jn,Mn,ea,Dm);Kn=Th(Kn,Pn,ea,Dm);Nn=Th(Nn,Qn,ea,Dm)}p[on+8>>2]=Jn;p[on+4>>2]=Kn;p[on>>2]=Nn;S=rn+96|0}function yd(ea){var Dm=0,on=0,co=0;Dm=p[ea+8>>2];co=p[ea>>2];a:{if(q[ea+12|0]){b:{c:{d:{e:{if((Dm|0)==-1){break e}on=Dm+1|0;Dm=(on>>>0)%3|0?on:Dm+ -2|0;if((Dm|0)==-1){break e}Dm=p[p[co+12>>2]+(Dm<<2)>>2];if((Dm|0)!=-1){break d}}p[ea+8>>2]=-1;break c}on=Dm+1|0;Dm=(on>>>0)%3|0?on:Dm+ -2|0;p[ea+8>>2]=Dm;if((Dm|0)!=-1){break b}}on=p[ea+4>>2];Dm=-1;f:{if((on|0)==-1){break f}on=on+((on>>>0)%3|0?-1:2)|0;Dm=-1;if((on|0)==-1){break f}on=p[p[co+12>>2]+(on<<2)>>2];Dm=-1;if((on|0)==-1){break f}Dm=on+ -1|0;if((on>>>0)%3){break f}Dm=on+2|0}n[ea+12|0]=0;p[ea+8>>2]=Dm;return}if((Dm|0)!=p[ea+4>>2]){break a}p[ea+8>>2]=-1;return}on=-1;g:{if((Dm|0)==-1){break g}Dm=Dm+((Dm>>>0)%3|0?-1:2)|0;on=-1;if((Dm|0)==-1){break g}Dm=p[p[co+12>>2]+(Dm<<2)>>2];on=-1;if((Dm|0)==-1){break g}on=Dm+ -1|0;if((Dm>>>0)%3){break g}on=Dm+2|0}p[ea+8>>2]=on}}function zd(ea,eo,fo,go,ho,io){ea=ea|0;eo=eo|0;fo=fo|0;go=go|0;ho=ho|0;io=io|0;var jo=0,ko=0,lo=0,mo=0,no=0,oo=0,po=0,qo=0,ro=0,so=0,to=0,uo=0,vo=0,wo=0;p[ea+8>>2]=ho;ko=ea+32|0;jo=p[ko>>2];io=p[ea+36>>2]-jo>>2;a:{if(io>>>0>>0){vb(ko,ho-io|0);break a}if(io>>>0<=ho>>>0){break a}p[ea+36>>2]=jo+(ho<<2)}ko=0;io=(ho&1073741823)!=(ho|0)?-1:ho<<2;to=uh(Bg(io),0,io);no=ea+8|0;jo=p[no>>2];b:{if((jo|0)<1){break b}po=ea+16|0;io=ea+32|0;qo=ea+12|0;while(1){jo=ko<<2;mo=p[jo+to>>2];lo=p[po>>2];c:{if((mo|0)>(lo|0)){oo=p[io>>2];p[jo+oo>>2]=lo;break c}oo=p[io>>2];jo=jo+oo|0;lo=p[qo>>2];if((mo|0)<(lo|0)){p[jo>>2]=lo;break c}p[jo>>2]=mo}ko=ko+1|0;jo=p[no>>2];if((ko|0)<(jo|0)){continue}break}if((jo|0)<1){break b}ko=0;no=ea+16|0;mo=ea+20|0;po=ea+8|0;qo=ea+12|0;while(1){jo=ko<<2;io=jo+fo|0;jo=p[eo+jo>>2]+p[jo+oo>>2]|0;p[io>>2]=jo;d:{if((jo|0)>p[no>>2]){jo=jo-p[mo>>2]|0}else{if((jo|0)>=p[qo>>2]){break d}jo=jo+p[mo>>2]|0}p[io>>2]=jo}ko=ko+1|0;jo=p[po>>2];if((ko|0)<(jo|0)){continue}break}}if((ho|0)<(go|0)){vo=0-ho<<2;mo=ea+16|0;oo=ea+32|0;no=ea+8|0;po=ea+20|0;qo=ea+12|0;io=ho;while(1){e:{if((jo|0)<1){break e}so=io<<2;uo=so+fo|0;wo=uo+vo|0;ko=0;while(1){ea=ko<<2;jo=p[ea+wo>>2];ro=p[mo>>2];f:{if((jo|0)>(ro|0)){lo=p[oo>>2];p[ea+lo>>2]=ro;break f}lo=p[oo>>2];ea=ea+lo|0;ro=p[qo>>2];if((jo|0)<(ro|0)){p[ea>>2]=ro;break f}p[ea>>2]=jo}ko=ko+1|0;jo=p[no>>2];if((ko|0)<(jo|0)){continue}break}ko=0;if((jo|0)<1){break e}so=eo+so|0;while(1){jo=ko<<2;ea=jo+uo|0;jo=p[jo+so>>2]+p[jo+lo>>2]|0;p[ea>>2]=jo;g:{if((jo|0)>p[mo>>2]){jo=jo-p[po>>2]|0}else{if((jo|0)>=p[qo>>2]){break g}jo=jo+p[po>>2]|0}p[ea>>2]=jo}ko=ko+1|0;jo=p[no>>2];if((ko|0)<(jo|0)){continue}break}}io=ho+io|0;if((io|0)<(go|0)){continue}break}}rh(to);return 1}function Ad(ea,eo,fo){ea=ea|0;eo=eo|0;fo=fo|0;var go=0;a:{if(!bc(ea,eo,fo)){break a}ea=p[ea+8>>2];if(q[ea+24|0]!=3){break a}go=p[ea+28>>2]==9}return go|0}function Bd(ea,eo,fo){ea=ea|0;eo=eo|0;fo=fo|0;var ho=0,io=0,xo=0,yo=0,zo=0;a:{if(q[p[ea+4>>2]+36|0]<=1){ho=p[fo+16>>2];io=p[fo+12>>2];xo=p[fo+20>>2];zo=xo;yo=0;if((io|0)<(zo|0)?1:(io|0)<=(zo|0)?s[fo+8>>2]>ho>>>0?0:1:0){break a}io=q[ho+p[fo>>2]|0];ho=ho+1|0;if(ho>>>0<1){xo=xo+1|0}p[fo+16>>2]=ho;p[fo+20>>2]=xo;p[ea+24>>2]=io}yo=gc(ea,eo,fo)}return yo|0}function Cd(ea,eo,fo){ea=ea|0;eo=eo|0;fo=fo|0;var Ao=0,Bo=0,Co=0,Do=0,Eo=0;Ao=S-16|0;S=Ao;a:{b:{if(q[p[ea+4>>2]+36|0]<=1){eo=p[ea+24>>2];break b}Do=p[fo+16>>2];Bo=p[fo+12>>2];Co=p[fo+20>>2];eo=Co;Eo=0;if((Bo|0)<(eo|0)?1:(Bo|0)<=(eo|0)?s[fo+8>>2]>Do>>>0?0:1:0){break a}eo=q[Do+p[fo>>2]|0];Bo=Do+1|0;if(Bo>>>0<1){Co=Co+1|0}p[fo+16>>2]=Bo;p[fo+20>>2]=Co;p[ea+24>>2]=eo}p[Ao+12>>2]=-1;p[Ao+8>>2]=1268;p[(Ao+8|0)+4>>2]=eo;Eo=hb(Ao+8|0,p[ea+16>>2])}ea=Eo;S=Ao+16|0;return ea|0}function Dd(ea,eo){ea=ea|0;eo=eo|0;var fo=0,Fo=0,Go=0,Ho=0,Io=0,Jo=w(0),Ko=0,Lo=0;Fo=S-32|0;S=Fo;Ho=n[p[ea+8>>2]+24|0];fo=p[ea+16>>2];if(p[fo+80>>2]){Io=p[p[fo>>2]>>2]+p[fo+48>>2]|0}p[Fo+8>>2]=-1;p[Fo+12>>2]=-1;p[Fo>>2]=-1;p[Fo+4>>2]=-1;a:{fo=p[ea+24>>2];if(fo+ -2>>>0>28){break a}p[Fo>>2]=fo;fo=-1<>2]=Go;p[Fo+4>>2]=fo^-1;p[Fo+12>>2]=(Go|0)/2;if(!eo){Go=1;break a}Ho=Ho<<2;fo=0;Lo=ea+8|0;ea=0;while(1){Jo=w(w(1)/w(Go|0));Go=fo<<2;Ed(w(Jo*w(p[Go+Io>>2])),w(Jo*w(p[(Go|4)+Io>>2])),Fo+20|0);th(p[p[p[Lo>>2]- -64>>2]>>2]+ea|0,Fo+20|0,Ho);Go=1;Ko=Ko+1|0;if((Ko|0)==(eo|0)){break a}fo=fo+2|0;ea=ea+Ho|0;Go=p[Fo+8>>2];continue}}S=Fo+32|0;return Go|0}function Ed(ea,eo,Mo){var No=0,Oo=0,Po=w(0),Qo=w(0),Ro=w(0),So=0,To=0;Po=w(ea+eo);a:{b:{Ro=w(ea-eo);if(Ro<=w(.5)^1|Ro>=w(-.5)^1|Po>=w(.5)^1){break b}Oo=1;if(!(Po<=w(1.5))){break b}Qo=eo;break a}c:{if(!!(Po<=w(.5))){Qo=w(w(.5)-ea);ea=w(w(.5)-eo);break c}if(!!(Po>=w(1.5))){Qo=w(w(1.5)-ea);ea=w(w(1.5)-eo);break c}if(!!(Ro<=w(-.5))){Qo=w(ea+w(.5));ea=w(eo+w(-.5));break c}Qo=w(ea+w(-.5));ea=w(eo+w(.5))}Ro=w(ea-Qo);Po=w(Qo+ea);Oo=-1}No=+Qo;eo=w(No+No+ -1);No=+ea;ea=w(No+No+ -1);To=Oo;Oo=+Ro;Oo=Oo+Oo;No=1-Oo;Oo=Oo+1;Oo=No>2]=0;Po=w(0);ea=w(0);break d}Ro=w(w(1)/w(D(Po)));t[Mo>>2]=Ro*Qo;Po=w(Ro*eo);ea=w(Ro*ea)}t[Mo+8>>2]=Po;t[Mo+4>>2]=ea}function Fd(ea,eo,Mo,Uo){ea=ea|0;eo=eo|0;Mo=Mo|0;Uo=Uo|0;var Vo=0,Wo=0,Xo=0;Vo=S-32|0;S=Vo;Uo=Uo+ -2|0;a:{if(Uo>>>0<=1){if(Uo-1){Uo=p[eo+4>>2];eo=p[eo+12>>2];p[Vo+24>>2]=-1;p[Vo+28>>2]=-1;p[Vo+16>>2]=-1;p[Vo+20>>2]=-1;if((Mo|0)==-2){p[Vo+8>>2]=0;p[ea>>2]=0;break a}Wo=p[p[p[Uo+4>>2]+8>>2]+(eo<<2)>>2];if((m[p[p[Uo>>2]+8>>2]](Uo)|0)==1){Xo=eo;eo=r[Uo+36>>1];Gd(Vo+8|0,Uo,Mo,Xo,Vo+16|0,(eo<<24|eo<<8&16711680)>>>16);eo=p[Vo+8>>2];if(eo){p[ea>>2]=eo;break a}p[Vo+8>>2]=0}eo=Bg(24);p[eo+4>>2]=Wo;Mo=p[Vo+20>>2];p[eo+8>>2]=p[Vo+16>>2];p[eo+12>>2]=Mo;Mo=p[Vo+28>>2];p[eo+16>>2]=p[Vo+24>>2];p[eo+20>>2]=Mo;p[eo>>2]=8416;p[Vo+8>>2]=eo;p[ea>>2]=eo;break a}Uo=p[eo+4>>2];eo=p[eo+12>>2];p[Vo+24>>2]=-1;p[Vo+28>>2]=-1;p[Vo+16>>2]=-1;p[Vo+20>>2]=-1;if((Mo|0)==-2){p[Vo+8>>2]=0;p[ea>>2]=0;break a}Wo=p[p[p[Uo+4>>2]+8>>2]+(eo<<2)>>2];if((m[p[p[Uo>>2]+8>>2]](Uo)|0)==1){Xo=eo;eo=r[Uo+36>>1];Hd(Vo+8|0,Uo,Mo,Xo,Vo+16|0,(eo<<24|eo<<8&16711680)>>>16);eo=p[Vo+8>>2];if(eo){p[ea>>2]=eo;break a}p[Vo+8>>2]=0}eo=Bg(24);p[eo+4>>2]=Wo;Mo=p[Vo+20>>2];p[eo+8>>2]=p[Vo+16>>2];p[eo+12>>2]=Mo;Mo=p[Vo+28>>2];p[eo+16>>2]=p[Vo+24>>2];p[eo+20>>2]=Mo;p[eo>>2]=10420;p[Vo+8>>2]=eo;p[ea>>2]=eo;break a}p[ea>>2]=0}S=Vo+32|0}function Gd(ea,eo,Mo,Uo,Yo,Zo){var _o=0,$o=0,ap=0,bp=0;bp=p[p[p[eo+4>>2]+8>>2]+(Uo<<2)>>2];a:{b:{if((m[p[p[eo>>2]+8>>2]](eo)|0)!=1|Mo+ -1>>>0>5){break b}$o=m[p[p[eo>>2]+36>>2]](eo)|0;Zo=m[p[p[eo>>2]+44>>2]](eo,Uo)|0;if(!$o|!Zo){break b}ap=m[p[p[eo>>2]+40>>2]](eo,Uo)|0;Uo=Zo+12|0;_o=p[eo+44>>2];c:{if(ap){if((Mo|0)!=6){break c}eo=Bg(104);p[eo+4>>2]=bp;Mo=p[Yo+4>>2];p[eo+8>>2]=p[Yo>>2];p[eo+12>>2]=Mo;Mo=p[Yo+12>>2];p[eo+16>>2]=p[Yo+8>>2];p[eo+20>>2]=Mo;p[eo+36>>2]=Zo;p[eo+32>>2]=Uo;p[eo+28>>2]=ap;p[eo+24>>2]=_o;p[eo+64>>2]=Zo;p[eo+60>>2]=Uo;p[eo+56>>2]=ap;p[eo+52>>2]=_o;p[eo+44>>2]=0;p[eo+48>>2]=0;p[eo>>2]=6700;p[eo+72>>2]=-1;p[eo+76>>2]=-1;p[eo+68>>2]=1;p[eo+40>>2]=7224;break a}if((Mo|0)!=6){break c}eo=Bg(104);p[eo+4>>2]=bp;Mo=p[Yo+4>>2];p[eo+8>>2]=p[Yo>>2];p[eo+12>>2]=Mo;Mo=p[Yo+12>>2];p[eo+16>>2]=p[Yo+8>>2];p[eo+20>>2]=Mo;p[eo+36>>2]=Zo;p[eo+32>>2]=Uo;p[eo+28>>2]=$o;p[eo+24>>2]=_o;p[eo+64>>2]=Zo;p[eo+60>>2]=Uo;p[eo+56>>2]=$o;p[eo+52>>2]=_o;p[eo+44>>2]=0;p[eo+48>>2]=0;p[eo>>2]=7636;p[eo+72>>2]=-1;p[eo+76>>2]=-1;p[eo+68>>2]=1;p[eo+40>>2]=8028;break a}p[ea>>2]=0}p[ea>>2]=0;return}p[eo+80>>2]=-1;p[eo+84>>2]=-1;le(eo+88|0);p[ea>>2]=eo}function Hd(ea,eo,Mo,Uo,Yo,Zo){var cp=0,dp=0,ep=0,fp=0;fp=p[p[p[eo+4>>2]+8>>2]+(Uo<<2)>>2];a:{b:{if((m[p[p[eo>>2]+8>>2]](eo)|0)!=1|Mo+ -1>>>0>5){break b}dp=m[p[p[eo>>2]+36>>2]](eo)|0;Zo=m[p[p[eo>>2]+44>>2]](eo,Uo)|0;if(!dp|!Zo){break b}ep=m[p[p[eo>>2]+40>>2]](eo,Uo)|0;Uo=Zo+12|0;cp=p[eo+44>>2];c:{if(ep){if((Mo|0)!=6){break c}eo=Bg(104);p[eo+4>>2]=fp;Mo=p[Yo+4>>2];p[eo+8>>2]=p[Yo>>2];p[eo+12>>2]=Mo;Mo=p[Yo+12>>2];p[eo+16>>2]=p[Yo+8>>2];p[eo+20>>2]=Mo;p[eo+36>>2]=Zo;p[eo+32>>2]=Uo;p[eo+28>>2]=ep;p[eo+24>>2]=cp;p[eo+64>>2]=Zo;p[eo+60>>2]=Uo;p[eo+56>>2]=ep;p[eo+52>>2]=cp;p[eo+44>>2]=0;p[eo+48>>2]=0;p[eo>>2]=8584;p[eo+72>>2]=-1;p[eo+76>>2]=-1;p[eo+68>>2]=1;p[eo+40>>2]=9148;break a}if((Mo|0)!=6){break c}eo=Bg(104);p[eo+4>>2]=fp;Mo=p[Yo+4>>2];p[eo+8>>2]=p[Yo>>2];p[eo+12>>2]=Mo;Mo=p[Yo+12>>2];p[eo+16>>2]=p[Yo+8>>2];p[eo+20>>2]=Mo;p[eo+36>>2]=Zo;p[eo+32>>2]=Uo;p[eo+28>>2]=dp;p[eo+24>>2]=cp;p[eo+64>>2]=Zo;p[eo+60>>2]=Uo;p[eo+56>>2]=dp;p[eo+52>>2]=cp;p[eo+44>>2]=0;p[eo+48>>2]=0;p[eo>>2]=9588;p[eo+72>>2]=-1;p[eo+76>>2]=-1;p[eo+68>>2]=1;p[eo+40>>2]=10008;break a}p[ea>>2]=0}p[ea>>2]=0;return}p[eo+80>>2]=-1;p[eo+84>>2]=-1;le(eo+88|0);p[ea>>2]=eo}function Id(ea){ea=ea|0;p[ea>>2]=6700;return ea|0}function Jd(ea){ea=ea|0;p[ea>>2]=6700;rh(ea)}function Kd(ea){ea=ea|0;var eo=0;a:{if(!p[ea+44>>2]|!p[ea+48>>2]|(!p[ea+24>>2]|!p[ea+28>>2])){break a}if(!p[ea+32>>2]|!p[ea+36>>2]){break a}eo=p[ea+72>>2]!=-1}return eo|0}function Ld(ea,Mo){ea=ea|0;Mo=Mo|0;var Uo=0;if(!(p[Mo+56>>2]|q[Mo+24|0]!=3)){p[ea+44>>2]=Mo;Uo=1}return Uo|0}function Md(ea,Mo){ea=ea|0;Mo=Mo|0;var Yo=0,Zo=0,gp=0,hp=0,ip=0,jp=0,kp=0,lp=0,mp=0,np=0,op=0;ip=p[Mo+12>>2];Yo=ip;Zo=p[Mo+20>>2];gp=Zo;jp=p[Mo+16>>2];hp=jp+4|0;if(hp>>>0<4){Zo=Zo+1|0}kp=p[Mo+8>>2];a:{if((Yo|0)<(Zo|0)?1:(Yo|0)<=(Zo|0)?kp>>>0>=hp>>>0?0:1:0){break a}lp=p[Mo>>2];Yo=jp+lp|0;mp=q[Yo|0]|q[Yo+1|0]<<8|(q[Yo+2|0]<<16|q[Yo+3|0]<<24);p[Mo+16>>2]=hp;p[Mo+20>>2]=Zo;np=r[Mo+38>>1];if(np>>>0<=513){Yo=ip;Zo=gp;gp=jp+8|0;if(gp>>>0<8){Zo=Zo+1|0}hp=gp;if((Yo|0)<(Zo|0)?1:(Yo|0)<=(Zo|0)?kp>>>0>=hp>>>0?0:1:0){break a}p[Mo+16>>2]=hp;p[Mo+20>>2]=Zo}if(!(mp&1)){break a}Yo=y(mp)^31;if(Yo+ -1>>>0>28){break a}p[ea+8>>2]=Yo+1;Yo=-2<>2]=gp;p[ea+12>>2]=Yo^-1;p[ea+20>>2]=(gp|0)/2;if(np>>>0<=513){if((ip|0)<(Zo|0)?1:(ip|0)<=(Zo|0)?kp>>>0>hp>>>0?0:1:0){break a}Yo=q[hp+lp|0];gp=hp+1|0;if(gp>>>0<1){Zo=Zo+1|0}p[Mo+16>>2]=gp;p[Mo+20>>2]=Zo;if(Yo>>>0>1){break a}p[ea+68>>2]=Yo-1|0?0:1}op=me(ea+88|0,Mo)}return op|0}function Nd(ea,Mo,pp,qp,rp,sp){ea=ea|0;Mo=Mo|0;pp=pp|0;qp=qp|0;rp=rp|0;sp=sp|0;var tp=0,up=0,vp=0,wp=0,xp=0,yp=0,zp=0,Ap=0,Bp=0,Cp=0,Dp=0;tp=S-48|0;S=tp;zp=ea+8|0;qp=p[zp>>2];if(qp+ -2>>>0<=28){p[ea+72>>2]=qp;qp=-1<>2]=rp;p[ea+76>>2]=qp^-1;p[ea+84>>2]=(rp|0)/2}p[ea+48>>2]=sp;qp=p[ea+36>>2];rp=p[qp>>2];sp=qp+4|0;up=p[sp>>2];p[tp+16>>2]=0;p[tp+8>>2]=0;p[tp+12>>2]=0;a:{rp=up-rp|0;if((rp|0)<1){break a}qp=p[qp>>2];if((qp|0)!=p[sp>>2]){Ap=rp>>2;Bp=ea+40|0;Cp=ea+88|0;Dp=ea+36|0;while(1){dd(Bp,p[(xp<<2)+qp>>2],tp+8|0);rp=p[tp+12>>2];up=rp>>31;sp=p[tp+8>>2];wp=sp>>31;yp=p[tp+16>>2];vp=yp>>31;qp=0;vp=vp^vp+yp;up=vp+((up^rp+up)+(wp^sp+wp)|0)|0;if(up>>>0>>0){qp=1}b:{if(!(qp|up)){p[tp+8>>2]=p[ea+84>>2];break b}wp=p[ea+84>>2];vp=wp;vp=vp>>31;rp=Th(Sh(wp,vp,rp,rp>>31),U,up,qp);p[tp+12>>2]=rp;qp=Th(Sh(wp,vp,sp,sp>>31),U,up,qp);p[tp+8>>2]=qp;sp=qp;qp=qp>>31;qp=(wp-(sp+qp^qp)|0)+((rp|0)<0?rp:0-rp|0)|0;if((yp|0)>=0){p[tp+16>>2]=qp;break b}p[tp+16>>2]=0-qp}qp=oe(Cp);sp=p[tp+8>>2];c:{if(!qp){rp=p[tp+12>>2];break c}p[tp+16>>2]=0-p[tp+16>>2];rp=0-p[tp+12>>2]|0;p[tp+12>>2]=rp;sp=0-sp|0;p[tp+8>>2]=sp}d:{if((sp|0)>=0){sp=p[ea+84>>2];qp=sp+p[tp+16>>2]|0;sp=rp+sp|0;break d}e:{if((rp|0)<=-1){qp=p[tp+16>>2];sp=qp>>31;sp=sp^qp+sp;break e}qp=p[tp+16>>2];sp=qp>>31;sp=p[ea+80>>2]-(sp^qp+sp)|0}if((qp|0)<=-1){qp=rp>>31;qp=qp+rp^qp;break d}qp=rp>>31;qp=p[ea+80>>2]-(qp+rp^qp)|0}rp=p[ea+80>>2];f:{if(!(qp|sp)){qp=rp;sp=qp;break f}if(!((qp|0)!=(rp|0)|sp)){sp=qp;break f}if(!((rp|0)!=(sp|0)|qp)){qp=sp;break f}g:{if(sp){break g}up=p[ea+84>>2];if((up|0)>=(qp|0)){break g}qp=(up<<1)-qp|0;sp=0;break f}h:{if((rp|0)!=(sp|0)){break h}up=p[ea+84>>2];if((up|0)<=(qp|0)){break h}qp=(up<<1)-qp|0;break f}i:{if((qp|0)!=(rp|0)){break i}rp=p[ea+84>>2];if((rp|0)<=(sp|0)){break i}sp=(rp<<1)-sp|0;break f}if(qp){break f}qp=0;rp=p[ea+84>>2];if((rp|0)>=(sp|0)){break f}sp=(rp<<1)-sp|0}rp=xp<<3;up=rp+Mo|0;wp=p[up+4>>2];p[tp+40>>2]=p[up>>2];p[tp+44>>2]=wp;p[tp+28>>2]=qp;p[tp+24>>2]=sp;Od(tp+32|0,zp,tp+24|0,tp+40|0);qp=pp+rp|0;p[qp>>2]=p[tp+32>>2];p[qp+4>>2]=p[tp+36>>2];xp=xp+1|0;if((xp|0)>=(Ap|0)){break a}rp=p[Dp>>2];qp=p[rp>>2];if(p[rp+4>>2]-qp>>2>>>0>xp>>>0){continue}break}}Qg();E()}S=tp+48|0;return 1}function Od(ea,Mo,pp,qp){var rp=0,sp=0,Ep=0,Fp=0,Gp=0,Hp=0,Ip=0,Jp=0;Fp=Mo+12|0;Ip=p[Fp>>2];sp=p[pp+4>>2]-Ip|0;rp=p[pp>>2]-Ip|0;p[pp>>2]=rp;p[pp+4>>2]=sp;Ep=sp>>31;Gp=Ep+sp^Ep;Ep=rp>>31;Fp=p[Fp>>2];Jp=(Gp+(Ep+rp^Ep)|0)<=(Fp|0);if(!Jp){a:{b:{if((rp|0)>=0){Hp=1;Gp=1;if((sp|0)>-1){break a}Ep=1;Hp=-1;Gp=-1;if((rp|0)>=1){break b}break a}Ep=-1;Hp=-1;Gp=-1;if((sp|0)<1){break a}}Hp=(sp|0)<1?-1:1;Gp=Ep}Ep=sp<<1;sp=v(Fp,Hp);Ep=Ep-sp|0;p[pp+4>>2]=Ep;Fp=v(Fp,Gp);rp=(rp<<1)-Fp|0;p[pp>>2]=rp;c:{if((v(Gp,Hp)|0)>=0){Ep=0-Ep|0;p[pp>>2]=Ep;rp=0-rp|0;break c}p[pp>>2]=Ep}sp=(rp+sp|0)/2|0;p[pp+4>>2]=sp;rp=(Fp+Ep|0)/2|0;p[pp>>2]=rp;Fp=p[Mo+12>>2]}rp=p[qp>>2]+rp|0;p[ea>>2]=rp;pp=p[qp+4>>2]+sp|0;p[ea+4>>2]=pp;d:{if((Fp|0)<(rp|0)){rp=rp-p[Mo+4>>2]|0;break d}if((rp|0)>=(0-Fp|0)){break d}rp=p[Mo+4>>2]+rp|0}p[ea>>2]=rp;e:{if((Fp|0)<(pp|0)){pp=pp-p[Mo+4>>2]|0;break e}if((pp|0)>=(0-Fp|0)){break e}pp=p[Mo+4>>2]+pp|0}p[ea+4>>2]=pp;if(!Jp){f:{g:{if((rp|0)>=0){Mo=1;qp=1;if((pp|0)>-1){break f}sp=1;Mo=-1;qp=-1;if((rp|0)>=1){break g}break f}sp=-1;Mo=-1;qp=-1;if((pp|0)<1){break f}}Mo=(pp|0)<1?-1:1;qp=sp}Ep=v(Mo,Fp);sp=(pp<<1)-Ep|0;p[ea+4>>2]=sp;Gp=v(qp,Fp);pp=(rp<<1)-Gp|0;p[ea>>2]=pp;h:{if((v(Mo,qp)|0)>=0){sp=0-sp|0;p[ea>>2]=sp;pp=0-pp|0;break h}p[ea>>2]=sp}pp=(pp+Ep|0)/2|0;p[ea+4>>2]=pp;rp=(sp+Gp|0)/2|0;p[ea>>2]=rp}p[ea>>2]=rp+Ip;p[ea+4>>2]=pp+Ip}function Pd(ea,Mo){ea=ea|0;Mo=Mo|0;var pp=0,qp=0,Kp=0,Lp=0,Mp=0,Np=0,Op=0,Pp=0,Qp=0;pp=p[Mo+12>>2];Np=pp;Kp=pp;pp=p[Mo+20>>2];Lp=pp;Mp=p[Mo+16>>2];qp=Mp+4|0;if(qp>>>0<4){pp=pp+1|0}Op=p[Mo+8>>2];Pp=qp;qp=pp;a:{if((Kp|0)<(pp|0)?1:(Kp|0)<=(pp|0)?Op>>>0>=Pp>>>0?0:1:0){break a}pp=Mp+p[Mo>>2]|0;Kp=q[pp|0]|q[pp+1|0]<<8|(q[pp+2|0]<<16|q[pp+3|0]<<24);p[Mo+16>>2]=Pp;p[Mo+20>>2]=qp;if(r[Mo+38>>1]<=513){pp=Lp;qp=Mp+8|0;if(qp>>>0<8){pp=pp+1|0}Lp=qp;qp=pp;if((Np|0)<(pp|0)?1:(Np|0)<=(pp|0)?Op>>>0>=Lp>>>0?0:1:0){break a}p[Mo+16>>2]=Lp;p[Mo+20>>2]=qp}if(!(Kp&1)){break a}Mo=y(Kp)^31;if(Mo+ -1>>>0>28){break a}Qp=1;p[ea+8>>2]=Mo+1;pp=-2<>2]=Mo;p[ea+12>>2]=pp^-1;p[ea+20>>2]=(Mo|0)/2}return Qp|0}function Qd(ea){ea=ea|0;p[ea>>2]=7636;return ea|0}function Rd(ea){ea=ea|0;p[ea>>2]=7636;rh(ea)}function Sd(ea,Mo,Rp,Sp,Tp,Up){ea=ea|0;Mo=Mo|0;Rp=Rp|0;Sp=Sp|0;Tp=Tp|0;Up=Up|0;var Vp=0,Wp=0,Xp=0,Yp=0,Zp=0,_p=0,$p=0,aq=0,bq=0,cq=0,dq=0;Vp=S-48|0;S=Vp;$p=ea+8|0;Sp=p[$p>>2];if(Sp+ -2>>>0<=28){p[ea+72>>2]=Sp;Sp=-1<>2]=Tp;p[ea+76>>2]=Sp^-1;p[ea+84>>2]=(Tp|0)/2}p[ea+48>>2]=Up;Sp=p[ea+36>>2];Tp=p[Sp>>2];Up=Sp+4|0;Wp=p[Up>>2];p[Vp+16>>2]=0;p[Vp+8>>2]=0;p[Vp+12>>2]=0;a:{Tp=Wp-Tp|0;if((Tp|0)<1){break a}Sp=p[Sp>>2];if((Sp|0)!=p[Up>>2]){aq=Tp>>2;bq=ea+40|0;cq=ea+88|0;dq=ea+36|0;while(1){xd(bq,p[(Zp<<2)+Sp>>2],Vp+8|0);Tp=p[Vp+12>>2];Wp=Tp>>31;Up=p[Vp+8>>2];Yp=Up>>31;_p=p[Vp+16>>2];Xp=_p>>31;Sp=0;Xp=Xp^Xp+_p;Wp=Xp+((Wp^Tp+Wp)+(Yp^Up+Yp)|0)|0;if(Wp>>>0>>0){Sp=1}b:{if(!(Sp|Wp)){p[Vp+8>>2]=p[ea+84>>2];break b}Yp=p[ea+84>>2];Xp=Yp;Xp=Xp>>31;Tp=Th(Sh(Yp,Xp,Tp,Tp>>31),U,Wp,Sp);p[Vp+12>>2]=Tp;Sp=Th(Sh(Yp,Xp,Up,Up>>31),U,Wp,Sp);p[Vp+8>>2]=Sp;Up=Sp;Sp=Sp>>31;Sp=(Yp-(Up+Sp^Sp)|0)+((Tp|0)<0?Tp:0-Tp|0)|0;if((_p|0)>=0){p[Vp+16>>2]=Sp;break b}p[Vp+16>>2]=0-Sp}Sp=oe(cq);Up=p[Vp+8>>2];c:{if(!Sp){Tp=p[Vp+12>>2];break c}p[Vp+16>>2]=0-p[Vp+16>>2];Tp=0-p[Vp+12>>2]|0;p[Vp+12>>2]=Tp;Up=0-Up|0;p[Vp+8>>2]=Up}d:{if((Up|0)>=0){Up=p[ea+84>>2];Sp=Up+p[Vp+16>>2]|0;Up=Tp+Up|0;break d}e:{if((Tp|0)<=-1){Sp=p[Vp+16>>2];Up=Sp>>31;Up=Up^Sp+Up;break e}Sp=p[Vp+16>>2];Up=Sp>>31;Up=p[ea+80>>2]-(Up^Sp+Up)|0}if((Sp|0)<=-1){Sp=Tp>>31;Sp=Sp+Tp^Sp;break d}Sp=Tp>>31;Sp=p[ea+80>>2]-(Sp+Tp^Sp)|0}Tp=p[ea+80>>2];f:{if(!(Sp|Up)){Sp=Tp;Up=Sp;break f}if(!((Sp|0)!=(Tp|0)|Up)){Up=Sp;break f}if(!((Tp|0)!=(Up|0)|Sp)){Sp=Up;break f}g:{if(Up){break g}Wp=p[ea+84>>2];if((Wp|0)>=(Sp|0)){break g}Sp=(Wp<<1)-Sp|0;Up=0;break f}h:{if((Tp|0)!=(Up|0)){break h}Wp=p[ea+84>>2];if((Wp|0)<=(Sp|0)){break h}Sp=(Wp<<1)-Sp|0;break f}i:{if((Sp|0)!=(Tp|0)){break i}Tp=p[ea+84>>2];if((Tp|0)<=(Up|0)){break i}Up=(Tp<<1)-Up|0;break f}if(Sp){break f}Sp=0;Tp=p[ea+84>>2];if((Tp|0)>=(Up|0)){break f}Up=(Tp<<1)-Up|0}Tp=Zp<<3;Wp=Tp+Mo|0;Yp=p[Wp+4>>2];p[Vp+40>>2]=p[Wp>>2];p[Vp+44>>2]=Yp;p[Vp+28>>2]=Sp;p[Vp+24>>2]=Up;Od(Vp+32|0,$p,Vp+24|0,Vp+40|0);Sp=Rp+Tp|0;p[Sp>>2]=p[Vp+32>>2];p[Sp+4>>2]=p[Vp+36>>2];Zp=Zp+1|0;if((Zp|0)>=(aq|0)){break a}Tp=p[dq>>2];Sp=p[Tp>>2];if(p[Tp+4>>2]-Sp>>2>>>0>Zp>>>0){continue}break}}Qg();E()}S=Vp+48|0;return 1}function Td(ea,Mo,Rp,Sp,Tp,Up){ea=ea|0;Mo=Mo|0;Rp=Rp|0;Sp=Sp|0;Tp=Tp|0;Up=Up|0;var eq=0,fq=0,gq=0,hq=0,iq=0,jq=0,kq=0,lq=0;Up=S-32|0;S=Up;eq=(Tp&1073741823)!=(Tp|0)?-1:Tp<<2;jq=uh(Bg(eq),0,eq);eq=jq;gq=p[eq>>2];eq=p[eq+4>>2];iq=p[Mo+4>>2];p[Up+24>>2]=p[Mo>>2];p[Up+28>>2]=iq;p[Up+8>>2]=gq;p[Up+12>>2]=eq;gq=ea+8|0;Od(Up+16|0,gq,Up+8|0,Up+24|0);p[Rp>>2]=p[Up+16>>2];p[Rp+4>>2]=p[Up+20>>2];if((Tp|0)<(Sp|0)){iq=0-Tp<<2;ea=Tp;while(1){fq=ea<<2;eq=fq+Rp|0;hq=eq+iq|0;kq=p[hq>>2];hq=p[hq+4>>2];fq=Mo+fq|0;lq=p[fq+4>>2];p[Up+24>>2]=p[fq>>2];p[Up+28>>2]=lq;p[Up+8>>2]=kq;p[Up+12>>2]=hq;Od(Up+16|0,gq,Up+8|0,Up+24|0);p[eq>>2]=p[Up+16>>2];p[eq+4>>2]=p[Up+20>>2];ea=ea+Tp|0;if((ea|0)<(Sp|0)){continue}break}}rh(jq);S=Up+32|0;return 1}function Ud(ea){ea=ea|0;p[ea>>2]=8584;return ea|0}function Vd(ea){ea=ea|0;p[ea>>2]=8584;rh(ea)}function Wd(ea,Mo){ea=ea|0;Mo=Mo|0;var Rp=0,Sp=0,Tp=0,Up=0,mq=0,nq=0,oq=0,pq=0,qq=0,rq=0,sq=0;Up=p[Mo+12>>2];mq=Up;Rp=p[Mo+20>>2];nq=Rp;oq=p[Mo+16>>2];Sp=oq+4|0;if(Sp>>>0<4){Rp=Rp+1|0}pq=p[Mo+8>>2];Tp=Sp;Sp=Rp;a:{if((mq|0)<(Rp|0)?1:(mq|0)<=(Rp|0)?pq>>>0>=Tp>>>0?0:1:0){break a}mq=p[Mo>>2];Rp=oq+mq|0;rq=q[Rp|0]|q[Rp+1|0]<<8|(q[Rp+2|0]<<16|q[Rp+3|0]<<24);p[Mo+16>>2]=Tp;p[Mo+20>>2]=Sp;Sp=Up;Rp=nq;Tp=oq+8|0;if(Tp>>>0<8){Rp=Rp+1|0}qq=Tp;if((Sp|0)<(Rp|0)?1:(Sp|0)<=(Rp|0)?pq>>>0>=Tp>>>0?0:1:0){break a}p[Mo+16>>2]=qq;p[Mo+20>>2]=Rp;if(!(rq&1)){break a}Sp=y(rq)^31;if(Sp+ -1>>>0>28){break a}p[ea+8>>2]=Sp+1;Tp=-2<>2]=Sp;p[ea+12>>2]=Tp^-1;p[ea+20>>2]=(Sp|0)/2;if(r[Mo+38>>1]<=513){if((Up|0)<(Rp|0)?1:(Up|0)<=(Rp|0)?pq>>>0>qq>>>0?0:1:0){break a}Up=q[mq+qq|0];Sp=oq+9|0;if(Sp>>>0<9){nq=nq+1|0}Rp=Mo;p[Rp+16>>2]=Sp;p[Rp+20>>2]=nq;if(Up>>>0>1){break a}p[ea+68>>2]=Up-1|0?0:1}sq=me(ea+88|0,Mo)}return sq|0}function Xd(ea,Mo,tq,uq,vq,wq){ea=ea|0;Mo=Mo|0;tq=tq|0;uq=uq|0;vq=vq|0;wq=wq|0;var xq=0,yq=0,zq=0,Aq=0,Bq=0,Cq=0,Dq=0,Eq=0,Fq=0,Gq=0,Hq=0;xq=S-48|0;S=xq;Dq=ea+8|0;uq=p[Dq>>2];if(uq+ -2>>>0<=28){p[ea+72>>2]=uq;uq=-1<>2]=vq;p[ea+76>>2]=uq^-1;p[ea+84>>2]=(vq|0)/2}p[ea+48>>2]=wq;uq=p[ea+36>>2];vq=p[uq>>2];wq=uq+4|0;yq=p[wq>>2];p[xq+16>>2]=0;p[xq+8>>2]=0;p[xq+12>>2]=0;a:{vq=yq-vq|0;if((vq|0)<1){break a}uq=p[uq>>2];if((uq|0)!=p[wq>>2]){Eq=vq>>2;Fq=ea+40|0;Gq=ea+88|0;Hq=ea+36|0;while(1){dd(Fq,p[(Bq<<2)+uq>>2],xq+8|0);vq=p[xq+12>>2];yq=vq>>31;wq=p[xq+8>>2];Aq=wq>>31;Cq=p[xq+16>>2];zq=Cq>>31;uq=0;zq=zq^zq+Cq;yq=zq+((yq^vq+yq)+(Aq^wq+Aq)|0)|0;if(yq>>>0>>0){uq=1}b:{if(!(uq|yq)){p[xq+8>>2]=p[ea+84>>2];break b}Aq=p[ea+84>>2];zq=Aq;zq=zq>>31;vq=Th(Sh(Aq,zq,vq,vq>>31),U,yq,uq);p[xq+12>>2]=vq;uq=Th(Sh(Aq,zq,wq,wq>>31),U,yq,uq);p[xq+8>>2]=uq;wq=uq;uq=uq>>31;uq=(Aq-(wq+uq^uq)|0)+((vq|0)<0?vq:0-vq|0)|0;if((Cq|0)>=0){p[xq+16>>2]=uq;break b}p[xq+16>>2]=0-uq}uq=oe(Gq);wq=p[xq+8>>2];c:{if(!uq){vq=p[xq+12>>2];break c}p[xq+16>>2]=0-p[xq+16>>2];vq=0-p[xq+12>>2]|0;p[xq+12>>2]=vq;wq=0-wq|0;p[xq+8>>2]=wq}d:{if((wq|0)>=0){wq=p[ea+84>>2];uq=wq+p[xq+16>>2]|0;wq=vq+wq|0;break d}e:{if((vq|0)<=-1){uq=p[xq+16>>2];wq=uq>>31;wq=wq^uq+wq;break e}uq=p[xq+16>>2];wq=uq>>31;wq=p[ea+80>>2]-(wq^uq+wq)|0}if((uq|0)<=-1){uq=vq>>31;uq=uq+vq^uq;break d}uq=vq>>31;uq=p[ea+80>>2]-(uq+vq^uq)|0}vq=p[ea+80>>2];f:{if(!(uq|wq)){uq=vq;wq=uq;break f}if(!((uq|0)!=(vq|0)|wq)){wq=uq;break f}if(!((vq|0)!=(wq|0)|uq)){uq=wq;break f}g:{if(wq){break g}yq=p[ea+84>>2];if((yq|0)>=(uq|0)){break g}uq=(yq<<1)-uq|0;wq=0;break f}h:{if((vq|0)!=(wq|0)){break h}yq=p[ea+84>>2];if((yq|0)<=(uq|0)){break h}uq=(yq<<1)-uq|0;break f}i:{if((uq|0)!=(vq|0)){break i}vq=p[ea+84>>2];if((vq|0)<=(wq|0)){break i}wq=(vq<<1)-wq|0;break f}if(uq){break f}uq=0;vq=p[ea+84>>2];if((vq|0)>=(wq|0)){break f}wq=(vq<<1)-wq|0}vq=Bq<<3;yq=vq+Mo|0;Aq=p[yq+4>>2];yq=p[yq>>2];p[xq+36>>2]=uq;p[xq+32>>2]=wq;p[xq+24>>2]=yq;p[xq+28>>2]=Aq;Yd(xq+40|0,Dq,xq+32|0,xq+24|0);uq=tq+vq|0;p[uq>>2]=p[xq+40>>2];p[uq+4>>2]=p[xq+44>>2];Bq=Bq+1|0;if((Bq|0)>=(Eq|0)){break a}vq=p[Hq>>2];uq=p[vq>>2];if(p[vq+4>>2]-uq>>2>>>0>Bq>>>0){continue}break}}Qg();E()}S=xq+48|0;return 1}function Yd(ea,Mo,tq,uq){var vq=0,wq=0,Iq=0,Jq=0,Kq=0,Lq=0,Mq=0,Nq=0;Jq=Mo+12|0;Mq=p[Jq>>2];wq=p[tq+4>>2]-Mq|0;vq=p[tq>>2]-Mq|0;p[tq>>2]=vq;p[tq+4>>2]=wq;Iq=wq>>31;Kq=Iq+wq^Iq;Iq=vq>>31;Jq=p[Jq>>2];Nq=(Kq+(Iq+vq^Iq)|0)<=(Jq|0);if(!Nq){a:{b:{if((vq|0)>=0){Iq=1;Lq=1;if((wq|0)>-1){break a}Kq=1;Iq=-1;Lq=-1;if((vq|0)>=1){break b}break a}Kq=-1;Iq=-1;Lq=-1;if((wq|0)<1){break a}}Iq=(wq|0)<1?-1:1;Lq=Kq}Kq=wq<<1;wq=v(Iq,Jq);Kq=Kq-wq|0;p[tq+4>>2]=Kq;Jq=v(Jq,Lq);vq=(vq<<1)-Jq|0;p[tq>>2]=vq;c:{if((v(Iq,Lq)|0)>=0){Kq=0-Kq|0;p[tq>>2]=Kq;vq=0-vq|0;break c}p[tq>>2]=Kq}wq=(vq+wq|0)/2|0;p[tq+4>>2]=wq;vq=(Jq+Kq|0)/2|0;p[tq>>2]=vq}d:{e:{f:{g:{h:{i:{j:{k:{if(!vq){if(wq){break j}Jq=1;Lq=0;break k}Jq=1;Iq=(vq|0)<0&(wq|0)<1;if((vq|0)>=1){Lq=(wq|0)>-1?2:1;if(Iq){break k}break i}Lq=(wq|0)>0?3:0;if(!Iq){break i}}Iq=wq;Kq=vq;break d}if((wq|0)>=1){break f}break h}Iq=Lq+ -1|0;if(Iq>>>0>2){Iq=wq;wq=vq;Lq=0;break e}switch(Iq-1|0){case 0:break g;case 1:break f;default:break h}}Iq=0-vq|0;Lq=1;break e}Iq=0-wq|0;wq=0-vq|0;Lq=2;break e}Iq=vq;wq=0-wq|0;Lq=3}vq=tq;Kq=wq;p[vq>>2]=wq;p[vq+4>>2]=Iq;Jq=0}wq=p[uq>>2]+Kq|0;p[ea>>2]=wq;vq=p[uq+4>>2]+Iq|0;p[ea+4>>2]=vq;Iq=p[Mo+12>>2];l:{if((Iq|0)<(wq|0)){wq=wq-p[Mo+4>>2]|0;break l}if((wq|0)>=(0-Iq|0)){break l}wq=p[Mo+4>>2]+wq|0}p[ea>>2]=wq;m:{if((Iq|0)<(vq|0)){vq=vq-p[Mo+4>>2]|0;break m}if((vq|0)>=(0-Iq|0)){break m}vq=p[Mo+4>>2]+vq|0}p[ea+4>>2]=vq;n:{if(Jq){tq=vq;vq=wq;break n}Mo=(4-Lq&3)+ -1|0;o:{if(Mo>>>0>2){tq=vq;vq=wq;break o}p:{switch(Mo-1|0){default:tq=0-wq|0;break o;case 0:tq=0-vq|0;vq=0-wq|0;break o;case 1:break p}}vq=0-vq|0;tq=wq}p[ea>>2]=vq;p[ea+4>>2]=tq}if(!Nq){q:{r:{if((vq|0)>=0){Mo=1;Jq=1;if((tq|0)>-1){break q}wq=1;Mo=-1;Jq=-1;if((vq|0)>=1){break r}break q}wq=-1;Mo=-1;Jq=-1;if((tq|0)<1){break q}}Mo=(tq|0)<1?-1:1;Jq=wq}uq=tq<<1;tq=v(Mo,Iq);wq=uq-tq|0;p[ea+4>>2]=wq;uq=v(Iq,Jq);vq=(vq<<1)-uq|0;p[ea>>2]=vq;s:{if((v(Mo,Jq)|0)>=0){wq=0-wq|0;p[ea>>2]=wq;vq=0-vq|0;break s}p[ea>>2]=wq}tq=(tq+vq|0)/2|0;p[ea+4>>2]=tq;vq=(uq+wq|0)/2|0;p[ea>>2]=vq}p[ea>>2]=vq+Mq;p[ea+4>>2]=tq+Mq}function Zd(ea,Mo){ea=ea|0;Mo=Mo|0;var tq=0,uq=0,Oq=0,Pq=0,Qq=0,Rq=0,Sq=0,Tq=0,Uq=0;tq=p[Mo+12>>2];Rq=tq;Oq=tq;tq=p[Mo+20>>2];Pq=tq;Qq=p[Mo+16>>2];uq=Qq+4|0;if(uq>>>0<4){tq=tq+1|0}Sq=p[Mo+8>>2];Tq=uq;uq=tq;a:{if((Oq|0)<(tq|0)?1:(Oq|0)<=(tq|0)?Sq>>>0>=Tq>>>0?0:1:0){break a}tq=Qq+p[Mo>>2]|0;Oq=q[tq|0]|q[tq+1|0]<<8|(q[tq+2|0]<<16|q[tq+3|0]<<24);p[Mo+16>>2]=Tq;p[Mo+20>>2]=uq;tq=Pq;uq=Qq+8|0;if(uq>>>0<8){tq=tq+1|0}Pq=uq;uq=tq;if((Rq|0)<(tq|0)?1:(Rq|0)<=(tq|0)?Sq>>>0>=Pq>>>0?0:1:0){break a}p[Mo+16>>2]=Pq;p[Mo+20>>2]=uq;if(!(Oq&1)){break a}Mo=y(Oq)^31;if(Mo+ -1>>>0>28){break a}Uq=1;p[ea+8>>2]=Mo+1;tq=-2<>2]=Mo;p[ea+12>>2]=tq^-1;p[ea+20>>2]=(Mo|0)/2}return Uq|0}function _d(ea){ea=ea|0;p[ea>>2]=9588;return ea|0}function $d(ea){ea=ea|0;p[ea>>2]=9588;rh(ea)}function ae(ea,Mo,Vq,Wq,Xq,Yq){ea=ea|0;Mo=Mo|0;Vq=Vq|0;Wq=Wq|0;Xq=Xq|0;Yq=Yq|0;var Zq=0,_q=0,$q=0,ar=0,br=0,cr=0,dr=0,er=0,fr=0,gr=0,hr=0;Zq=S-48|0;S=Zq;dr=ea+8|0;Wq=p[dr>>2];if(Wq+ -2>>>0<=28){p[ea+72>>2]=Wq;Wq=-1<>2]=Xq;p[ea+76>>2]=Wq^-1;p[ea+84>>2]=(Xq|0)/2}p[ea+48>>2]=Yq;Wq=p[ea+36>>2];Xq=p[Wq>>2];Yq=Wq+4|0;_q=p[Yq>>2];p[Zq+16>>2]=0;p[Zq+8>>2]=0;p[Zq+12>>2]=0;a:{Xq=_q-Xq|0;if((Xq|0)<1){break a}Wq=p[Wq>>2];if((Wq|0)!=p[Yq>>2]){er=Xq>>2;fr=ea+40|0;gr=ea+88|0;hr=ea+36|0;while(1){xd(fr,p[(br<<2)+Wq>>2],Zq+8|0);Xq=p[Zq+12>>2];_q=Xq>>31;Yq=p[Zq+8>>2];ar=Yq>>31;cr=p[Zq+16>>2];$q=cr>>31;Wq=0;$q=$q^$q+cr;_q=$q+((_q^Xq+_q)+(ar^Yq+ar)|0)|0;if(_q>>>0<$q>>>0){Wq=1}b:{if(!(Wq|_q)){p[Zq+8>>2]=p[ea+84>>2];break b}ar=p[ea+84>>2];$q=ar;$q=$q>>31;Xq=Th(Sh(ar,$q,Xq,Xq>>31),U,_q,Wq);p[Zq+12>>2]=Xq;Wq=Th(Sh(ar,$q,Yq,Yq>>31),U,_q,Wq);p[Zq+8>>2]=Wq;Yq=Wq;Wq=Wq>>31;Wq=(ar-(Yq+Wq^Wq)|0)+((Xq|0)<0?Xq:0-Xq|0)|0;if((cr|0)>=0){p[Zq+16>>2]=Wq;break b}p[Zq+16>>2]=0-Wq}Wq=oe(gr);Yq=p[Zq+8>>2];c:{if(!Wq){Xq=p[Zq+12>>2];break c}p[Zq+16>>2]=0-p[Zq+16>>2];Xq=0-p[Zq+12>>2]|0;p[Zq+12>>2]=Xq;Yq=0-Yq|0;p[Zq+8>>2]=Yq}d:{if((Yq|0)>=0){Yq=p[ea+84>>2];Wq=Yq+p[Zq+16>>2]|0;Yq=Xq+Yq|0;break d}e:{if((Xq|0)<=-1){Wq=p[Zq+16>>2];Yq=Wq>>31;Yq=Yq^Wq+Yq;break e}Wq=p[Zq+16>>2];Yq=Wq>>31;Yq=p[ea+80>>2]-(Yq^Wq+Yq)|0}if((Wq|0)<=-1){Wq=Xq>>31;Wq=Wq+Xq^Wq;break d}Wq=Xq>>31;Wq=p[ea+80>>2]-(Wq+Xq^Wq)|0}Xq=p[ea+80>>2];f:{if(!(Wq|Yq)){Wq=Xq;Yq=Wq;break f}if(!((Wq|0)!=(Xq|0)|Yq)){Yq=Wq;break f}if(!((Xq|0)!=(Yq|0)|Wq)){Wq=Yq;break f}g:{if(Yq){break g}_q=p[ea+84>>2];if((_q|0)>=(Wq|0)){break g}Wq=(_q<<1)-Wq|0;Yq=0;break f}h:{if((Xq|0)!=(Yq|0)){break h}_q=p[ea+84>>2];if((_q|0)<=(Wq|0)){break h}Wq=(_q<<1)-Wq|0;break f}i:{if((Wq|0)!=(Xq|0)){break i}Xq=p[ea+84>>2];if((Xq|0)<=(Yq|0)){break i}Yq=(Xq<<1)-Yq|0;break f}if(Wq){break f}Wq=0;Xq=p[ea+84>>2];if((Xq|0)>=(Yq|0)){break f}Yq=(Xq<<1)-Yq|0}Xq=br<<3;_q=Xq+Mo|0;ar=p[_q+4>>2];_q=p[_q>>2];p[Zq+36>>2]=Wq;p[Zq+32>>2]=Yq;p[Zq+24>>2]=_q;p[Zq+28>>2]=ar;Yd(Zq+40|0,dr,Zq+32|0,Zq+24|0);Wq=Vq+Xq|0;p[Wq>>2]=p[Zq+40>>2];p[Wq+4>>2]=p[Zq+44>>2];br=br+1|0;if((br|0)>=(er|0)){break a}Xq=p[hr>>2];Wq=p[Xq>>2];if(p[Xq+4>>2]-Wq>>2>>>0>br>>>0){continue}break}}Qg();E()}S=Zq+48|0;return 1}function be(ea,Mo,Vq,Wq,Xq,Yq){ea=ea|0;Mo=Mo|0;Vq=Vq|0;Wq=Wq|0;Xq=Xq|0;Yq=Yq|0;var ir=0,jr=0,kr=0,lr=0,mr=0,nr=0,or=0,pr=0;Yq=S-32|0;S=Yq;jr=(Xq&1073741823)!=(Xq|0)?-1:Xq<<2;jr=uh(Bg(jr),0,jr);ir=p[Mo>>2];kr=p[Mo+4>>2];mr=p[jr+4>>2];p[Yq+16>>2]=p[jr>>2];p[Yq+20>>2]=mr;p[Yq+8>>2]=ir;p[Yq+12>>2]=kr;kr=ea+8|0;Yd(Yq+24|0,kr,Yq+16|0,Yq+8|0);p[Vq>>2]=p[Yq+24>>2];p[Vq+4>>2]=p[Yq+28>>2];if((Xq|0)<(Wq|0)){mr=0-Xq<<2;ea=Xq;while(1){ir=ea<<2;lr=ir+Mo|0;or=p[lr>>2];lr=p[lr+4>>2];ir=Vq+ir|0;nr=ir+mr|0;pr=p[nr+4>>2];p[Yq+16>>2]=p[nr>>2];p[Yq+20>>2]=pr;p[Yq+8>>2]=or;p[Yq+12>>2]=lr;Yd(Yq+24|0,kr,Yq+16|0,Yq+8|0);p[ir>>2]=p[Yq+24>>2];p[ir+4>>2]=p[Yq+28>>2];ea=ea+Xq|0;if((ea|0)<(Wq|0)){continue}break}}rh(jr);S=Yq+32|0;return 1}function ce(ea,Mo,Vq){ea=ea|0;Mo=Mo|0;Vq=Vq|0;if(bc(ea,Mo,Vq)){ea=p[p[p[p[Mo+4>>2]+8>>2]+(Vq<<2)>>2]+28>>2]==9}else{ea=0}return ea|0}function de(ea,Mo,Vq){ea=ea|0;Mo=Mo|0;Vq=Vq|0;var Wq=0;a:{if(q[p[ea+4>>2]+36|0]<=1){Wq=0;if(!m[p[p[ea>>2]+52>>2]](ea)){break a}}Wq=gc(ea,Mo,Vq)}return Wq|0}function ee(ea,Mo,Vq){ea=ea|0;Mo=Mo|0;Vq=Vq|0;Mo=S-32|0;S=Mo;a:{if(q[p[ea+4>>2]+36|0]>=2){Vq=0;if(!m[p[p[ea>>2]+52>>2]](ea)){break a}}p[Mo+24>>2]=0;p[Mo+28>>2]=0;p[Mo+16>>2]=0;p[Mo+20>>2]=0;p[Mo+12>>2]=-1;p[Mo+8>>2]=1384;eb(Mo+8|0,p[ea+24>>2],p[ea+28>>2],n[p[ea+8>>2]+24|0],t[ea+32>>2]);Vq=hb(Mo+8|0,p[ea+16>>2]);p[Mo+8>>2]=1384;ea=p[Mo+16>>2];if(!ea){break a}p[Mo+20>>2]=ea;rh(ea)}S=Mo+32|0;return Vq|0}function fe(ea,Mo){ea=ea|0;Mo=Mo|0;return m[p[p[ea>>2]+56>>2]](ea,Mo)|0}function ge(ea){ea=ea|0;var Mo=0,Vq=0,Xq=0,Yq=0,qr=0,rr=0,sr=0,tr=0,ur=0,vr=0;Mo=n[p[ea+8>>2]+24|0];Xq=Mo<<2;Mo=Bg((Mo|0)!=(Mo&1073741823)?-1:Xq);Vq=p[ea+28>>2];p[ea+28>>2]=Mo;if(Vq){rh(Vq)}tr=ea+4|0;Vq=p[p[tr>>2]+32>>2];Mo=p[Vq+8>>2];ur=p[Vq+12>>2];rr=Mo;qr=p[Vq+20>>2];sr=p[Vq+16>>2];Mo=Xq;Yq=sr+Mo|0;if(Yq>>>0>>0){qr=qr+1|0}a:{if((ur|0)<(qr|0)?1:(ur|0)<=(qr|0)?rr>>>0>=Yq>>>0?0:1:0){break a}th(p[ea+28>>2],sr+p[Vq>>2]|0,Xq);Xq=Vq;rr=Vq;Yq=p[Vq+20>>2];Vq=Mo+p[Vq+16>>2]|0;if(Vq>>>0>>0){Yq=Yq+1|0}p[rr+16>>2]=Vq;p[Xq+20>>2]=Yq;Yq=p[tr>>2];Xq=p[Yq+32>>2];Mo=p[Xq+8>>2];qr=p[Xq+12>>2];rr=Mo;sr=p[Xq+20>>2];Vq=p[Xq+16>>2];Mo=Vq+4|0;if(Mo>>>0<4){sr=sr+1|0}if((qr|0)<(sr|0)?1:(qr|0)<=(sr|0)?rr>>>0>=Mo>>>0?0:1:0){break a}Mo=Vq+p[Xq>>2]|0;p[ea+32>>2]=q[Mo|0]|q[Mo+1|0]<<8|(q[Mo+2|0]<<16|q[Mo+3|0]<<24);Mo=Xq;rr=Mo;Vq=p[Mo+20>>2];Xq=p[Mo+16>>2]+4|0;if(Xq>>>0<4){Vq=Vq+1|0}p[rr+16>>2]=Xq;p[Mo+20>>2]=Vq;Mo=p[Yq+32>>2];qr=p[Mo+16>>2];Yq=p[Mo+12>>2];Xq=p[Mo+20>>2];Vq=Xq;if((Yq|0)<(Vq|0)?1:(Yq|0)<=(Vq|0)?s[Mo+8>>2]>qr>>>0?0:1:0){break a}Yq=q[qr+p[Mo>>2]|0];Vq=qr+1|0;if(Vq>>>0<1){Xq=Xq+1|0}p[Mo+16>>2]=Vq;p[Mo+20>>2]=Xq;if(Yq>>>0>31){break a}p[ea+24>>2]=Yq;vr=1}return vr|0}function he(ea,wr){ea=ea|0;wr=wr|0;var xr=0,yr=0,zr=0,Ar=0,Br=0,Cr=0,Dr=0,Er=0,Fr=0,Gr=0,Hr=0,Ir=0,Jr=0,Kr=0,Lr=w(0);Br=S-16|0;S=Br;zr=p[ea+24>>2];Ar=n[p[ea+8>>2]+24|0];Cr=Ar<<2;Dr=Bg((Ar&1073741823)!=(Ar|0)?-1:Cr);Er=Br+8|0;p[Er>>2]=1065353216;zr=-1<>2]=t[ea+32>>2]/w(zr|0);yr=1}b:{if(!yr){break b}xr=p[ea+16>>2];yr=0;c:{if(!p[xr+80>>2]){break c}yr=p[p[xr>>2]>>2]+p[xr+48>>2]|0}if(!wr){xr=1;break b}zr=(Ar|0)<1;Ir=ea+28|0;Jr=ea+8|0;ea=0;while(1){if(!zr){Kr=p[Ir>>2];Lr=t[Er>>2];xr=0;while(1){Fr=xr<<2;t[Fr+Dr>>2]=w(Lr*w(p[yr+(ea<<2)>>2]))+t[Kr+Fr>>2];ea=ea+1|0;xr=xr+1|0;if((Ar|0)!=(xr|0)){continue}break}}th(p[p[p[Jr>>2]- -64>>2]>>2]+Gr|0,Dr,Cr);Gr=Cr+Gr|0;xr=1;Hr=Hr+1|0;if((Hr|0)!=(wr|0)){continue}break}}rh(Dr);S=Br+16|0;return xr|0}function ie(ea){ea=ea|0;var wr=0,Mr=0;p[ea>>2]=10604;Mr=ea+28|0;wr=p[Mr>>2];p[Mr>>2]=0;if(wr){rh(wr)}p[ea>>2]=2060;Mr=ea+20|0;wr=p[Mr>>2];p[Mr>>2]=0;if(wr){m[p[p[wr>>2]+4>>2]](wr)}p[ea>>2]=1748;Mr=ea+16|0;wr=p[Mr>>2];p[Mr>>2]=0;if(wr){Ta(wr)}return ea|0}function je(ea){ea=ea|0;var Nr=0,Or=0;p[ea>>2]=10604;Or=ea+28|0;Nr=p[Or>>2];p[Or>>2]=0;if(Nr){rh(Nr)}p[ea>>2]=2060;Or=ea+20|0;Nr=p[Or>>2];p[Or>>2]=0;if(Nr){m[p[p[Nr>>2]+4>>2]](Nr)}p[ea>>2]=1748;Or=ea+16|0;Nr=p[Or>>2];p[Or>>2]=0;if(Nr){Ta(Nr)}rh(ea)}function ke(ea,Pr){var Qr=0,Rr=0,Sr=0,Tr=0,Ur=0,Vr=0,Wr=0,Xr=0,Yr=0;Rr=p[ea+8>>2];Sr=ea+4|0;Qr=p[Sr>>2];if(Rr-Qr>>2>>>0>=Pr>>>0){ea=Pr<<2;Xr=Sr,Yr=uh(Qr,0,ea)+ea|0,p[Xr>>2]=Yr;return}a:{Sr=p[ea>>2];Ur=Qr-Sr|0;Qr=Ur>>2;Tr=Qr+Pr|0;if(Tr>>>0<1073741824){Wr=Qr<<2;Rr=Rr-Sr|0;Qr=Rr>>1;Rr=Rr>>2>>>0<536870911?Qr>>>0>>0?Tr:Qr:1073741823;Qr=0;b:{if(!Rr){break b}if(Rr>>>0>=1073741824){break a}Vr=Bg(Rr<<2);Qr=Vr}uh(Wr+Qr|0,0,Pr<<2);Pr=Qr+(Tr<<2)|0;Tr=Qr+(Rr<<2)|0;if((Ur|0)>=1){th(Vr,Sr,Ur)}p[ea>>2]=Qr;p[ea+8>>2]=Tr;p[ea+4>>2]=Pr;if(Sr){rh(Sr)}return}Pg();E()}sa(10728);E()}function le(ea){p[ea>>2]=0;p[ea+4>>2]=0;n[ea+5|0]=0;n[ea+6|0]=0;n[ea+7|0]=0;n[ea+8|0]=0;n[ea+9|0]=0;n[ea+10|0]=0;n[ea+11|0]=0;n[ea+12|0]=0;return ea}function me(ea,Pr){var Zr=0,_r=0,$r=0,as=0,bs=0,cs=0,ds=0,es=0,fs=0,gs=0,hs=0;es=S-16|0;S=es;as=p[Pr+16>>2];Zr=p[Pr+12>>2];_r=p[Pr+20>>2];a:{if((Zr|0)<(_r|0)?1:(Zr|0)<=(_r|0)?s[Pr+8>>2]>as>>>0?0:1:0){break a}n[ea+12|0]=q[as+p[Pr>>2]|0];Zr=p[Pr+20>>2];as=Zr;bs=p[Pr+16>>2];cs=bs+1|0;if(cs>>>0<1){Zr=Zr+1|0}$r=cs;p[Pr+16>>2]=$r;p[Pr+20>>2]=Zr;b:{if(r[Pr+38>>1]<=513){ds=p[Pr+12>>2];fs=ds;_r=as;Zr=bs+5|0;if(Zr>>>0<5){_r=_r+1|0}cs=p[Pr+8>>2];bs=Zr;Zr=_r;if((fs|0)<(Zr|0)?1:(fs|0)<=(Zr|0)?cs>>>0>=bs>>>0?0:1:0){break a}_r=$r+p[Pr>>2]|0;$r=q[_r|0]|q[_r+1|0]<<8|(q[_r+2|0]<<16|q[_r+3|0]<<24);p[es+12>>2]=$r;p[Pr+16>>2]=bs;p[Pr+20>>2]=Zr;break b}if(!ne(1,es+12|0,Pr)){break a}bs=p[Pr+16>>2];Zr=p[Pr+20>>2];cs=p[Pr+8>>2];ds=p[Pr+12>>2];$r=p[es+12>>2]}_r=$r;as=ds-(Zr+(cs>>>0>>0)|0)|0;if(((as|0)<0?1:(as|0)<=0?cs-bs>>>0>=_r>>>0?0:1:0)|(_r|0)<1){break a}as=bs+p[Pr>>2]|0;p[ea>>2]=as;ds=$r+ -1|0;fs=ds+as|0;cs=q[fs|0]>>>6;if((cs|0)==3){break a}gs=ea;c:{d:{switch(cs-1|0){default:p[ea+4>>2]=ds;ea=q[fs|0]&63;break c;case 0:if(($r|0)<2){break a}p[ea+4>>2]=$r+ -2;ea=($r+as|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c;case 1:break d}}if(($r|0)<3){break a}p[ea+4>>2]=$r+ -3;ea=($r+as|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0]}ea=ea+4096|0;p[gs+8>>2]=ea;if(ea>>>0>1048575){break a}ea=_r+bs|0;if(ea>>>0<_r>>>0){Zr=Zr+1|0}p[Pr+16>>2]=ea;p[Pr+20>>2]=Zr;hs=1}S=es+16|0;return hs}function ne(ea,Pr,is){var js=0,ks=0,ls=0,ms=0;a:{if(ea>>>0>5){break a}ls=p[is+16>>2];js=p[is+12>>2];ks=p[is+20>>2];if((js|0)<(ks|0)?1:(js|0)<=(ks|0)?s[is+8>>2]>ls>>>0?0:1:0){break a}js=q[ls+p[is>>2]|0];ls=ls+1|0;if(ls>>>0<1){ks=ks+1|0}p[is+16>>2]=ls;p[is+20>>2]=ks;ks=Pr;if(js&128){if(!ne(ea+1|0,Pr,is)){break a}ea=p[Pr>>2]<<7;p[Pr>>2]=ea;js=ea|js&127}p[ks>>2]=js;ms=1}return ms}function oe(ea){var Pr=0,is=0,ns=0,os=0,ps=0;ns=0-q[ea+12|0]|0;is=p[ea+8>>2];a:{if(is>>>0>4095){break a}Pr=p[ea+4>>2];if((Pr|0)<1){break a}Pr=Pr+ -1|0;p[ea+4>>2]=Pr;is=q[Pr+p[ea>>2]|0]|is<<8;p[ea+8>>2]=is}ns=ns&255;Pr=v(ns,is>>>8);os=is&255;ps=os>>>0>>0;p[ea+8>>2]=ps?Pr+os|0:(is-ns|0)-Pr|0;return ps}function pe(ea,qs){var rs=0,ss=0,ts=0;rs=(ea|0)==(qs|0);n[qs+12|0]=rs;a:{if(rs){break a}while(1){ss=p[qs+8>>2];if(q[ss+12|0]){break a}b:{rs=p[ss+8>>2];ts=p[rs>>2];if((ts|0)==(ss|0)){ts=p[rs+4>>2];if(!(!ts|q[ts+12|0])){break b}c:{if(p[ss>>2]==(qs|0)){qs=ss;break c}qs=p[ss+4>>2];ts=p[qs>>2];p[ss+4>>2]=ts;ea=qs;if(ts){p[ts+8>>2]=ss;rs=p[ss+8>>2]}p[ea+8>>2]=rs;ea=p[ss+8>>2];p[((ss|0)==p[ea>>2]?ea:ea+4|0)>>2]=qs;p[qs>>2]=ss;p[ss+8>>2]=qs;rs=p[qs+8>>2]}n[qs+12|0]=1;n[rs+12|0]=0;ea=p[rs>>2];qs=p[ea+4>>2];p[rs>>2]=qs;if(qs){p[qs+8>>2]=rs}p[ea+8>>2]=p[rs+8>>2];qs=p[rs+8>>2];p[(p[qs>>2]==(rs|0)?qs:qs+4|0)>>2]=ea;p[ea+4>>2]=rs;p[rs+8>>2]=ea;return}if(!(q[ts+12|0]|!ts)){break b}d:{if(p[ss>>2]!=(qs|0)){qs=ss;break d}ts=p[qs+4>>2];p[ss>>2]=ts;ea=qs;if(ts){p[ts+8>>2]=ss;rs=p[ss+8>>2]}p[ea+8>>2]=rs;ea=p[ss+8>>2];p[((ss|0)==p[ea>>2]?ea:ea+4|0)>>2]=qs;p[qs+4>>2]=ss;p[ss+8>>2]=qs;rs=p[qs+8>>2]}n[qs+12|0]=1;n[rs+12|0]=0;ea=p[rs+4>>2];qs=p[ea>>2];p[rs+4>>2]=qs;if(qs){p[qs+8>>2]=rs}p[ea+8>>2]=p[rs+8>>2];qs=p[rs+8>>2];p[(p[qs>>2]==(rs|0)?qs:qs+4|0)>>2]=ea;p[ea>>2]=rs;p[rs+8>>2]=ea;break a}qs=ts+12|0;n[ss+12|0]=1;n[rs+12|0]=(ea|0)==(rs|0);n[qs|0]=1;qs=rs;if((qs|0)!=(ea|0)){continue}break}}}function qe(ea,qs,us,vs){var ws=0,xs=0,ys=0,zs=0,As=0;if(!ea){return 1}ws=p[us+16>>2];zs=p[us+12>>2];ys=p[us+20>>2];xs=ys;a:{if((zs|0)<(xs|0)?1:(zs|0)<=(xs|0)?s[us+8>>2]>ws>>>0?0:1:0){break a}xs=q[ws+p[us>>2]|0];ws=ws+1|0;if(ws>>>0<1){ys=ys+1|0}p[us+16>>2]=ws;p[us+20>>2]=ys;if(xs>>>0>1){break a}if(xs-1){return re(ea,qs,us,vs)}As=se(ea,us,vs)}return As}function re(ea,qs,us,vs){var Bs=0,Cs=0,Ds=0,Es=0,Fs=0,Gs=0,Hs=0,Is=0,Js=0,Ks=0,Ls=0,Ms=0,Ns=0,Os=0,Ps=0,Qs=0;Bs=S+ -64|0;S=Bs;p[Bs+56>>2]=0;p[Bs+48>>2]=0;p[Bs+52>>2]=0;p[Bs+40>>2]=0;p[Bs+44>>2]=0;p[Bs+32>>2]=0;p[Bs+36>>2]=0;p[Bs+24>>2]=0;p[Bs+28>>2]=0;p[Bs+16>>2]=0;p[Bs+20>>2]=0;p[Bs+8>>2]=0;p[Bs+12>>2]=0;a:{if(!te(Bs+8|0,us)){break a}if(!ue(Bs+8|0,us)|(p[Bs+20>>2]?0:ea)){break a}jf(us);if(ea){Es=p[Bs+56>>2];Ms=p[Bs+36>>2];Ns=p[Bs+48>>2];Os=p[Bs+24>>2];while(1){b:{if(Es>>>0>16383){break b}Ds=p[Bs+52>>2];while(1){if((Ds|0)<1){break b}Ds=Ds+ -1|0;p[Bs+52>>2]=Ds;Es=q[Ds+Ns|0]|Es<<8;p[Bs+56>>2]=Es;if(Es>>>0<16384){continue}break}}Cs=Es&4095;Ks=p[(Cs<<2)+Os>>2];Gs=(Ks<<3)+Ms|0;Es=(v(p[Gs>>2],Es>>>12)+Cs|0)-p[Gs+4>>2]|0;p[Bs+56>>2]=Es;if((qs|0)>=1){if(!q[us+36|0]){Cs=0;break a}Gs=qs+Fs|0;while(1){c:{if((Ks|0)<1){Is=0;break c}Cs=p[us+32>>2];Ps=p[us+28>>2];Qs=p[us+24>>2];Ds=0;Is=0;while(1){Hs=(Cs>>>3)+Qs|0;d:{if(Hs>>>0>=Ps>>>0){Js=0;break d}Js=q[Hs|0];Hs=Cs+1|0;p[us+32>>2]=Hs;Js=Js>>>(Cs&7)&1;Cs=Hs}Is=Js<>2]=Is;Fs=Fs+1|0;if((Gs|0)!=(Fs|0)){continue}break}Fs=Gs}Ls=qs+Ls|0;if(Ls>>>0>>0){continue}break}}n[us+36|0]=0;vs=p[us+20>>2];ea=us;Cs=us;Gs=p[us+16>>2];qs=0;us=p[us+32>>2]+7|0;if(us>>>0<7){qs=1}Fs=qs<<29|us>>>3;us=Gs+Fs|0;qs=(qs>>>3)+vs|0;p[Cs+16>>2]=us;p[ea+20>>2]=us>>>0>>0?qs+1|0:qs;Cs=1}ea=p[Bs+36>>2];if(ea){p[Bs+40>>2]=ea;rh(ea)}ea=p[Bs+24>>2];if(ea){p[Bs+28>>2]=ea;rh(ea)}ea=p[Bs+8>>2];if(ea){p[Bs+12>>2]=ea;rh(ea)}S=Bs- -64|0;return Cs}function se(ea,qs,us){var vs=0,Rs=0,Ss=0,Ts=0;a:{b:{Rs=p[qs+16>>2];Ss=p[qs+12>>2];vs=p[qs+20>>2];c:{if((Ss|0)<(vs|0)?1:(Ss|0)<=(vs|0)?s[qs+8>>2]>Rs>>>0?0:1:0){break c}Ss=q[Rs+p[qs>>2]|0];Rs=Rs+1|0;if(Rs>>>0<1){vs=vs+1|0}p[qs+16>>2]=Rs;p[qs+20>>2]=vs;vs=Ss+ -1|0;if(vs>>>0>17){break c}d:{e:{switch(vs-1|0){case 7:return we(ea,qs,us);case 8:return xe(ea,qs,us);case 9:return ye(ea,qs,us);case 10:return ze(ea,qs,us);case 12:case 13:case 14:case 15:break a;case 16:break d;case 11:break e;default:break b}}return Ae(ea,qs,us)}Ts=Be(ea,qs,us)}return Ts}return ve(ea,qs,us)}return Be(ea,qs,us)}function te(ea,qs){var us=0,Us=0,Vs=0,Ws=0,Xs=0,Ys=0,Zs=0,_s=0,$s=0,at=0,bt=0,ct=0,dt=0;a:{us=r[qs+38>>1];if(!us){break a}Zs=ea+12|0;b:{if(us>>>0<=511){Us=p[qs+12>>2];us=p[qs+20>>2];Vs=p[qs+16>>2];Xs=Vs+4|0;if(Xs>>>0<4){us=us+1|0}if((Us|0)<(us|0)?1:(Us|0)<=(us|0)?s[qs+8>>2]>=Xs>>>0?0:1:0){break a}us=Vs+p[qs>>2]|0;Vs=q[us|0]|q[us+1|0]<<8|(q[us+2|0]<<16|q[us+3|0]<<24);p[Zs>>2]=Vs;Us=p[qs+20>>2];Xs=p[qs+16>>2]+4|0;if(Xs>>>0<4){Us=Us+1|0}us=qs;p[us+16>>2]=Xs;p[us+20>>2]=Us;break b}if(!Ce(1,Zs,qs)){break a}Vs=p[Zs>>2]}Us=p[ea>>2];us=p[ea+4>>2]-Us>>2;c:{if(Vs>>>0>us>>>0){ke(ea,Vs-us|0);Vs=p[ea+12>>2];break c}if(Vs>>>0>=us>>>0){break c}p[ea+4>>2]=Us+(Vs<<2)}if(!Vs){dt=1;break a}bt=p[qs+8>>2];Xs=p[qs+12>>2];while(1){Ws=p[qs+16>>2];us=p[qs+20>>2];if((Xs|0)<(us|0)?1:(Xs|0)<=(us|0)?bt>>>0>Ws>>>0?0:1:0){break a}ct=p[qs>>2];_s=q[ct+Ws|0];Ws=Ws+1|0;if(Ws>>>0<1){us=us+1|0}p[qs+16>>2]=Ws;p[qs+20>>2]=us;$s=_s>>>2;d:{e:{f:{at=_s&3;if(at>>>0>3){Us=0;break f}Us=0;g:{switch(at-1|0){case 0:case 1:break f;case 2:break g;default:break e}}us=Ys+$s|0;if(us>>>0>=Vs>>>0){return 0}uh(p[ea>>2]+(Ys<<2)|0,0,(_s&252)+4|0);Ys=us;break d}while(1){if((Xs|0)<(us|0)?1:(Xs|0)<=(us|0)?bt>>>0>Ws>>>0?0:1:0){return 0}_s=q[Ws+ct|0];Ws=Ws+1|0;if(Ws>>>0<1){us=us+1|0}p[qs+16>>2]=Ws;p[qs+20>>2]=us;$s=_s<<(Us<<3|6)|$s;Us=Us+1|0;if((at|0)!=(Us|0)){continue}break}}p[p[ea>>2]+(Ys<<2)>>2]=$s}Ys=Ys+1|0;Vs=p[Zs>>2];if(Ys>>>0>>0){continue}break}Ys=ea+16|0;Zs=p[ea>>2];qs=p[ea+16>>2];us=p[ea+20>>2]-qs|0;Us=us>>2;h:{if(Us>>>0<=4095){ke(Ys,4096-Us|0);break h}if((us|0)==16384){break h}p[ea+20>>2]=qs+16384}i:{qs=ea+28|0;us=p[qs>>2];Us=p[ea+32>>2]-us>>3;if(Vs>>>0>Us>>>0){De(qs,Vs-Us|0);us=p[qs>>2];break i}if(Vs>>>0>>0){p[ea+32>>2]=(Vs<<3)+us}if(Vs){break i}return 0}qs=0;Us=0;while(1){ea=Zs+(qs<<2)|0;Xs=p[ea>>2];Ws=(qs<<3)+us|0;p[Ws+4>>2]=Us;p[Ws>>2]=Xs;ea=p[ea>>2]+Us|0;if(ea>>>0>4096){break a}if(Us>>>0>>0){Xs=p[Ys>>2];while(1){p[Xs+(Us<<2)>>2]=qs;Us=Us+1|0;if((ea|0)!=(Us|0)){continue}break}}Us=ea;qs=qs+1|0;if((Vs|0)!=(qs|0)){continue}break}return(ea|0)==4096}return dt}function ue(ea,qs){var et=0,ft=0,gt=0,ht=0,it=0,jt=0,kt=0,lt=0,mt=0;it=S-16|0;S=it;a:{b:{if(r[qs+38>>1]<=511){ft=p[qs+12>>2];lt=ft;et=p[qs+20>>2];gt=p[qs+16>>2];ht=gt+8|0;if(ht>>>0<8){et=et+1|0}jt=p[qs+8>>2];if((ft|0)<(et|0)?1:(ft|0)<=(et|0)?jt>>>0>=ht>>>0?0:1:0){break a}ft=gt+p[qs>>2]|0;gt=q[ft+4|0]|q[ft+5|0]<<8|(q[ft+6|0]<<16|q[ft+7|0]<<24);ft=q[ft|0]|q[ft+1|0]<<8|(q[ft+2|0]<<16|q[ft+3|0]<<24);p[it+8>>2]=ft;p[it+12>>2]=gt;p[qs+16>>2]=ht;p[qs+20>>2]=et;break b}if(!Ee(1,it+8|0,qs)){break a}ht=p[qs+16>>2];et=p[qs+20>>2];jt=p[qs+8>>2];lt=p[qs+12>>2];ft=p[it+8>>2];gt=p[it+12>>2]}kt=jt-ht|0;jt=lt-(et+(jt>>>0>>0)|0)|0;if((jt|0)==(gt|0)&ft>>>0>kt>>>0|gt>>>0>jt>>>0){break a}gt=et+gt|0;et=ht;kt=et+ft|0;if(kt>>>0>>0){gt=gt+1|0}p[qs+16>>2]=kt;p[qs+20>>2]=gt;et=ft;if((et|0)<1){break a}ht=ht+p[qs>>2]|0;p[ea+40>>2]=ht;qs=ea;c:{d:{e:{f:{g:{ft=et+ -1|0;gt=ht+ft|0;switch((q[gt|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=ft;ea=q[gt|0]&63;break c}if((et|0)<2){break a}p[ea+44>>2]=et+ -2;ea=(et+ht|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((et|0)<3){break a}p[ea+44>>2]=et+ -3;ea=(et+ht|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=et+ -4;ea=(et+ht|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea+16384|0;p[qs+48>>2]=ea;mt=ea>>>0<4194304}S=it+16|0;return mt}function ve(ea,qs,nt){var ot=0,pt=0,qt=0,rt=0,st=0,tt=0,ut=0,vt=0;ot=S+ -64|0;S=ot;p[ot+56>>2]=0;p[ot+48>>2]=0;p[ot+52>>2]=0;p[ot+40>>2]=0;p[ot+44>>2]=0;p[ot+32>>2]=0;p[ot+36>>2]=0;p[ot+24>>2]=0;p[ot+28>>2]=0;p[ot+16>>2]=0;p[ot+20>>2]=0;p[ot+8>>2]=0;p[ot+12>>2]=0;a:{if(!te(ot+8|0,qs)|(p[ot+20>>2]?0:ea)){break a}pt=ue(ot+8|0,qs);if(!ea|!pt){break a}qs=p[ot+56>>2];tt=p[ot+36>>2];ut=p[ot+48>>2];vt=p[ot+24>>2];while(1){b:{if(qs>>>0>16383){break b}pt=p[ot+52>>2];while(1){if((pt|0)<1){break b}pt=pt+ -1|0;p[ot+52>>2]=pt;qs=q[pt+ut|0]|qs<<8;p[ot+56>>2]=qs;if(qs>>>0<16384){continue}break}}pt=qs&4095;rt=p[(pt<<2)+vt>>2];st=(rt<<3)+tt|0;qs=(v(p[st>>2],qs>>>12)+pt|0)-p[st+4>>2]|0;p[ot+56>>2]=qs;p[(qt<<2)+nt>>2]=rt;pt=1;qt=qt+1|0;if((qt|0)!=(ea|0)){continue}break}}ea=p[ot+36>>2];if(ea){p[ot+40>>2]=ea;rh(ea)}ea=p[ot+24>>2];if(ea){p[ot+28>>2]=ea;rh(ea)}ea=p[ot+8>>2];if(ea){p[ot+12>>2]=ea;rh(ea)}S=ot- -64|0;return pt}function we(ea,qs,nt){var wt=0,xt=0,yt=0,zt=0,At=0,Bt=0,Ct=0,Dt=0;wt=S+ -64|0;S=wt;p[wt+56>>2]=0;p[wt+48>>2]=0;p[wt+52>>2]=0;p[wt+40>>2]=0;p[wt+44>>2]=0;p[wt+32>>2]=0;p[wt+36>>2]=0;p[wt+24>>2]=0;p[wt+28>>2]=0;p[wt+16>>2]=0;p[wt+20>>2]=0;p[wt+8>>2]=0;p[wt+12>>2]=0;a:{if(!Fe(wt+8|0,qs)|(p[wt+20>>2]?0:ea)){break a}xt=Ge(wt+8|0,qs);if(!ea|!xt){break a}qs=p[wt+56>>2];Bt=p[wt+36>>2];Ct=p[wt+48>>2];Dt=p[wt+24>>2];while(1){b:{if(qs>>>0>32767){break b}xt=p[wt+52>>2];while(1){if((xt|0)<1){break b}xt=xt+ -1|0;p[wt+52>>2]=xt;qs=q[xt+Ct|0]|qs<<8;p[wt+56>>2]=qs;if(qs>>>0<32768){continue}break}}xt=qs&8191;zt=p[(xt<<2)+Dt>>2];At=(zt<<3)+Bt|0;qs=(v(p[At>>2],qs>>>13)+xt|0)-p[At+4>>2]|0;p[wt+56>>2]=qs;p[(yt<<2)+nt>>2]=zt;xt=1;yt=yt+1|0;if((yt|0)!=(ea|0)){continue}break}}ea=p[wt+36>>2];if(ea){p[wt+40>>2]=ea;rh(ea)}ea=p[wt+24>>2];if(ea){p[wt+28>>2]=ea;rh(ea)}ea=p[wt+8>>2];if(ea){p[wt+12>>2]=ea;rh(ea)}S=wt- -64|0;return xt}function xe(ea,qs,nt){var Et=0,Ft=0,Gt=0,Ht=0,It=0,Jt=0,Kt=0,Lt=0;Et=S+ -64|0;S=Et;p[Et+56>>2]=0;p[Et+48>>2]=0;p[Et+52>>2]=0;p[Et+40>>2]=0;p[Et+44>>2]=0;p[Et+32>>2]=0;p[Et+36>>2]=0;p[Et+24>>2]=0;p[Et+28>>2]=0;p[Et+16>>2]=0;p[Et+20>>2]=0;p[Et+8>>2]=0;p[Et+12>>2]=0;a:{if(!He(Et+8|0,qs)|(p[Et+20>>2]?0:ea)){break a}Ft=Ie(Et+8|0,qs);if(!ea|!Ft){break a}qs=p[Et+56>>2];Jt=p[Et+36>>2];Kt=p[Et+48>>2];Lt=p[Et+24>>2];while(1){b:{if(qs>>>0>131071){break b}Ft=p[Et+52>>2];while(1){if((Ft|0)<1){break b}Ft=Ft+ -1|0;p[Et+52>>2]=Ft;qs=q[Ft+Kt|0]|qs<<8;p[Et+56>>2]=qs;if(qs>>>0<131072){continue}break}}Ft=qs&32767;Ht=p[(Ft<<2)+Lt>>2];It=(Ht<<3)+Jt|0;qs=(v(p[It>>2],qs>>>15)+Ft|0)-p[It+4>>2]|0;p[Et+56>>2]=qs;p[(Gt<<2)+nt>>2]=Ht;Ft=1;Gt=Gt+1|0;if((Gt|0)!=(ea|0)){continue}break}}ea=p[Et+36>>2];if(ea){p[Et+40>>2]=ea;rh(ea)}ea=p[Et+24>>2];if(ea){p[Et+28>>2]=ea;rh(ea)}ea=p[Et+8>>2];if(ea){p[Et+12>>2]=ea;rh(ea)}S=Et- -64|0;return Ft}function ye(ea,qs,nt){var Mt=0,Nt=0,Ot=0,Pt=0,Qt=0,Rt=0,St=0,Tt=0;Mt=S+ -64|0;S=Mt;p[Mt+56>>2]=0;p[Mt+48>>2]=0;p[Mt+52>>2]=0;p[Mt+40>>2]=0;p[Mt+44>>2]=0;p[Mt+32>>2]=0;p[Mt+36>>2]=0;p[Mt+24>>2]=0;p[Mt+28>>2]=0;p[Mt+16>>2]=0;p[Mt+20>>2]=0;p[Mt+8>>2]=0;p[Mt+12>>2]=0;a:{if(!Je(Mt+8|0,qs)|(p[Mt+20>>2]?0:ea)){break a}Nt=Ke(Mt+8|0,qs);if(!ea|!Nt){break a}qs=p[Mt+56>>2];Rt=p[Mt+36>>2];St=p[Mt+48>>2];Tt=p[Mt+24>>2];while(1){b:{if(qs>>>0>262143){break b}Nt=p[Mt+52>>2];while(1){if((Nt|0)<1){break b}Nt=Nt+ -1|0;p[Mt+52>>2]=Nt;qs=q[Nt+St|0]|qs<<8;p[Mt+56>>2]=qs;if(qs>>>0<262144){continue}break}}Nt=qs&65535;Pt=p[(Nt<<2)+Tt>>2];Qt=(Pt<<3)+Rt|0;qs=(v(p[Qt>>2],qs>>>16)+Nt|0)-p[Qt+4>>2]|0;p[Mt+56>>2]=qs;p[(Ot<<2)+nt>>2]=Pt;Nt=1;Ot=Ot+1|0;if((Ot|0)!=(ea|0)){continue}break}}ea=p[Mt+36>>2];if(ea){p[Mt+40>>2]=ea;rh(ea)}ea=p[Mt+24>>2];if(ea){p[Mt+28>>2]=ea;rh(ea)}ea=p[Mt+8>>2];if(ea){p[Mt+12>>2]=ea;rh(ea)}S=Mt- -64|0;return Nt}function ze(ea,qs,nt){var Ut=0,Vt=0,Wt=0,Xt=0,Yt=0,Zt=0,_t=0,$t=0;Ut=S+ -64|0;S=Ut;p[Ut+56>>2]=0;p[Ut+48>>2]=0;p[Ut+52>>2]=0;p[Ut+40>>2]=0;p[Ut+44>>2]=0;p[Ut+32>>2]=0;p[Ut+36>>2]=0;p[Ut+24>>2]=0;p[Ut+28>>2]=0;p[Ut+16>>2]=0;p[Ut+20>>2]=0;p[Ut+8>>2]=0;p[Ut+12>>2]=0;a:{if(!Le(Ut+8|0,qs)|(p[Ut+20>>2]?0:ea)){break a}Vt=Me(Ut+8|0,qs);if(!ea|!Vt){break a}qs=p[Ut+56>>2];Zt=p[Ut+36>>2];_t=p[Ut+48>>2];$t=p[Ut+24>>2];while(1){b:{if(qs>>>0>1048575){break b}Vt=p[Ut+52>>2];while(1){if((Vt|0)<1){break b}Vt=Vt+ -1|0;p[Ut+52>>2]=Vt;qs=q[Vt+_t|0]|qs<<8;p[Ut+56>>2]=qs;if(qs>>>0<1048576){continue}break}}Vt=qs&262143;Xt=p[(Vt<<2)+$t>>2];Yt=(Xt<<3)+Zt|0;qs=(v(p[Yt>>2],qs>>>18)+Vt|0)-p[Yt+4>>2]|0;p[Ut+56>>2]=qs;p[(Wt<<2)+nt>>2]=Xt;Vt=1;Wt=Wt+1|0;if((Wt|0)!=(ea|0)){continue}break}}ea=p[Ut+36>>2];if(ea){p[Ut+40>>2]=ea;rh(ea)}ea=p[Ut+24>>2];if(ea){p[Ut+28>>2]=ea;rh(ea)}ea=p[Ut+8>>2];if(ea){p[Ut+12>>2]=ea;rh(ea)}S=Ut- -64|0;return Vt}function Ae(ea,qs,nt){var au=0,bu=0,cu=0,du=0,eu=0,fu=0,gu=0,hu=0;au=S+ -64|0;S=au;p[au+56>>2]=0;p[au+48>>2]=0;p[au+52>>2]=0;p[au+40>>2]=0;p[au+44>>2]=0;p[au+32>>2]=0;p[au+36>>2]=0;p[au+24>>2]=0;p[au+28>>2]=0;p[au+16>>2]=0;p[au+20>>2]=0;p[au+8>>2]=0;p[au+12>>2]=0;a:{if(!Ne(au+8|0,qs)|(p[au+20>>2]?0:ea)){break a}bu=Oe(au+8|0,qs);if(!ea|!bu){break a}qs=p[au+56>>2];fu=p[au+36>>2];gu=p[au+48>>2];hu=p[au+24>>2];while(1){b:{if(qs>>>0>2097151){break b}bu=p[au+52>>2];while(1){if((bu|0)<1){break b}bu=bu+ -1|0;p[au+52>>2]=bu;qs=q[bu+gu|0]|qs<<8;p[au+56>>2]=qs;if(qs>>>0<2097152){continue}break}}bu=qs&524287;du=p[(bu<<2)+hu>>2];eu=(du<<3)+fu|0;qs=(v(p[eu>>2],qs>>>19)+bu|0)-p[eu+4>>2]|0;p[au+56>>2]=qs;p[(cu<<2)+nt>>2]=du;bu=1;cu=cu+1|0;if((cu|0)!=(ea|0)){continue}break}}ea=p[au+36>>2];if(ea){p[au+40>>2]=ea;rh(ea)}ea=p[au+24>>2];if(ea){p[au+28>>2]=ea;rh(ea)}ea=p[au+8>>2];if(ea){p[au+12>>2]=ea;rh(ea)}S=au- -64|0;return bu}function Be(ea,qs,nt){var iu=0,ju=0,ku=0,lu=0,mu=0,nu=0,ou=0,pu=0;iu=S+ -64|0;S=iu;p[iu+56>>2]=0;p[iu+48>>2]=0;p[iu+52>>2]=0;p[iu+40>>2]=0;p[iu+44>>2]=0;p[iu+32>>2]=0;p[iu+36>>2]=0;p[iu+24>>2]=0;p[iu+28>>2]=0;p[iu+16>>2]=0;p[iu+20>>2]=0;p[iu+8>>2]=0;p[iu+12>>2]=0;a:{if(!Pe(iu+8|0,qs)|(p[iu+20>>2]?0:ea)){break a}ju=Qe(iu+8|0,qs);if(!ea|!ju){break a}qs=p[iu+56>>2];nu=p[iu+36>>2];ou=p[iu+48>>2];pu=p[iu+24>>2];while(1){b:{if(qs>>>0>4194303){break b}ju=p[iu+52>>2];while(1){if((ju|0)<1){break b}ju=ju+ -1|0;p[iu+52>>2]=ju;qs=q[ju+ou|0]|qs<<8;p[iu+56>>2]=qs;if(qs>>>0<4194304){continue}break}}ju=qs&1048575;lu=p[(ju<<2)+pu>>2];mu=(lu<<3)+nu|0;qs=(v(p[mu>>2],qs>>>20)+ju|0)-p[mu+4>>2]|0;p[iu+56>>2]=qs;p[(ku<<2)+nt>>2]=lu;ju=1;ku=ku+1|0;if((ku|0)!=(ea|0)){continue}break}}ea=p[iu+36>>2];if(ea){p[iu+40>>2]=ea;rh(ea)}ea=p[iu+24>>2];if(ea){p[iu+28>>2]=ea;rh(ea)}ea=p[iu+8>>2];if(ea){p[iu+12>>2]=ea;rh(ea)}S=iu- -64|0;return ju}function Ce(ea,qs,nt){var qu=0,ru=0,su=0,tu=0;a:{if(ea>>>0>5){break a}su=p[nt+16>>2];qu=p[nt+12>>2];ru=p[nt+20>>2];if((qu|0)<(ru|0)?1:(qu|0)<=(ru|0)?s[nt+8>>2]>su>>>0?0:1:0){break a}qu=q[su+p[nt>>2]|0];su=su+1|0;if(su>>>0<1){ru=ru+1|0}p[nt+16>>2]=su;p[nt+20>>2]=ru;ru=qs;if(qu&128){if(!Ce(ea+1|0,qs,nt)){break a}ea=p[qs>>2]<<7;p[qs>>2]=ea;qu=ea|qu&127}p[ru>>2]=qu;tu=1}return tu}function De(ea,qs){var nt=0,uu=0,vu=0,wu=0,xu=0,yu=0,zu=0;a:{b:{vu=p[ea+8>>2];nt=ea+4|0;uu=p[nt>>2];c:{if(vu-uu>>3>>>0>=qs>>>0){while(1){p[uu>>2]=0;p[uu+4>>2]=0;uu=p[nt>>2]+8|0;p[nt>>2]=uu;qs=qs+ -1|0;if(qs){continue}break c}}wu=p[ea>>2];xu=uu-wu|0;nt=xu>>3;uu=nt+qs|0;if(uu>>>0>=536870912){break b}zu=nt<<3;vu=vu-wu|0;nt=vu>>2;vu=vu>>3>>>0<268435455?nt>>>0>>0?uu:nt:536870911;nt=0;d:{if(!vu){break d}if(vu>>>0>=536870912){break a}yu=Bg(vu<<3);nt=yu}uu=zu+nt|0;uh(uu,0,qs<<3);vu=nt+(vu<<3)|0;while(1){uu=uu+8|0;qs=qs+ -1|0;if(qs){continue}break}if((xu|0)>=1){th(yu,wu,xu)}p[ea>>2]=nt;p[ea+8>>2]=vu;p[ea+4>>2]=uu;if(!wu){break c}rh(wu)}return}Pg();E()}sa(10796);E()}function Ee(ea,qs,Au){var Bu=0,Cu=0,Du=0,Eu=0,Fu=0,Gu=0;a:{if(ea>>>0>10){break a}Du=p[Au+16>>2];Bu=p[Au+12>>2];Cu=p[Au+20>>2];Eu=Cu;if((Bu|0)<(Eu|0)?1:(Bu|0)<=(Eu|0)?s[Au+8>>2]>Du>>>0?0:1:0){break a}Fu=n[Du+p[Au>>2]|0];Bu=Du+1|0;if(Bu>>>0<1){Cu=Cu+1|0}p[Au+16>>2]=Bu;p[Au+20>>2]=Cu;Eu=qs;Du=qs;Bu=Fu;b:{if((Bu|0)<=-1){if(!Ee(ea+1|0,qs,Au)){break a}ea=qs;Au=p[qs+4>>2];qs=p[qs>>2];Cu=Au<<7|qs>>>25;qs=qs<<7;p[ea>>2]=qs;p[ea+4>>2]=Cu;ea=Bu&127|qs;break b}Cu=0;ea=Bu&255}p[Du>>2]=ea;p[Eu+4>>2]=Cu;Gu=1}return Gu}function Fe(ea,qs){var Au=0,Hu=0,Iu=0,Ju=0,Ku=0,Lu=0,Mu=0,Nu=0,Ou=0,Pu=0,Qu=0,Ru=0,Su=0;a:{Au=r[qs+38>>1];if(!Au){break a}Mu=ea+12|0;b:{if(Au>>>0<=511){Hu=p[qs+12>>2];Au=p[qs+20>>2];Iu=p[qs+16>>2];Ku=Iu+4|0;if(Ku>>>0<4){Au=Au+1|0}if((Hu|0)<(Au|0)?1:(Hu|0)<=(Au|0)?s[qs+8>>2]>=Ku>>>0?0:1:0){break a}Au=Iu+p[qs>>2]|0;Iu=q[Au|0]|q[Au+1|0]<<8|(q[Au+2|0]<<16|q[Au+3|0]<<24);p[Mu>>2]=Iu;Hu=p[qs+20>>2];Ku=p[qs+16>>2]+4|0;if(Ku>>>0<4){Hu=Hu+1|0}Au=qs;p[Au+16>>2]=Ku;p[Au+20>>2]=Hu;break b}if(!Ce(1,Mu,qs)){break a}Iu=p[Mu>>2]}Hu=p[ea>>2];Au=p[ea+4>>2]-Hu>>2;c:{if(Iu>>>0>Au>>>0){ke(ea,Iu-Au|0);Iu=p[ea+12>>2];break c}if(Iu>>>0>=Au>>>0){break c}p[ea+4>>2]=Hu+(Iu<<2)}if(!Iu){Su=1;break a}Qu=p[qs+8>>2];Ku=p[qs+12>>2];while(1){Ju=p[qs+16>>2];Au=p[qs+20>>2];if((Ku|0)<(Au|0)?1:(Ku|0)<=(Au|0)?Qu>>>0>Ju>>>0?0:1:0){break a}Ru=p[qs>>2];Nu=q[Ru+Ju|0];Ju=Ju+1|0;if(Ju>>>0<1){Au=Au+1|0}p[qs+16>>2]=Ju;p[qs+20>>2]=Au;Ou=Nu>>>2;d:{e:{f:{Pu=Nu&3;if(Pu>>>0>3){Hu=0;break f}Hu=0;g:{switch(Pu-1|0){case 0:case 1:break f;case 2:break g;default:break e}}Au=Lu+Ou|0;if(Au>>>0>=Iu>>>0){return 0}uh(p[ea>>2]+(Lu<<2)|0,0,(Nu&252)+4|0);Lu=Au;break d}while(1){if((Ku|0)<(Au|0)?1:(Ku|0)<=(Au|0)?Qu>>>0>Ju>>>0?0:1:0){return 0}Nu=q[Ju+Ru|0];Ju=Ju+1|0;if(Ju>>>0<1){Au=Au+1|0}p[qs+16>>2]=Ju;p[qs+20>>2]=Au;Ou=Nu<<(Hu<<3|6)|Ou;Hu=Hu+1|0;if((Pu|0)!=(Hu|0)){continue}break}}p[p[ea>>2]+(Lu<<2)>>2]=Ou}Lu=Lu+1|0;Iu=p[Mu>>2];if(Lu>>>0>>0){continue}break}Lu=ea+16|0;Mu=p[ea>>2];qs=p[ea+16>>2];Au=p[ea+20>>2]-qs|0;Hu=Au>>2;h:{if(Hu>>>0<=8191){ke(Lu,8192-Hu|0);break h}if((Au|0)==32768){break h}p[ea+20>>2]=qs+32768}i:{qs=ea+28|0;Au=p[qs>>2];Hu=p[ea+32>>2]-Au>>3;if(Iu>>>0>Hu>>>0){De(qs,Iu-Hu|0);Au=p[qs>>2];break i}if(Iu>>>0>>0){p[ea+32>>2]=(Iu<<3)+Au}if(Iu){break i}return 0}qs=0;Hu=0;while(1){ea=Mu+(qs<<2)|0;Ku=p[ea>>2];Ju=(qs<<3)+Au|0;p[Ju+4>>2]=Hu;p[Ju>>2]=Ku;ea=p[ea>>2]+Hu|0;if(ea>>>0>8192){break a}if(Hu>>>0>>0){Ku=p[Lu>>2];while(1){p[Ku+(Hu<<2)>>2]=qs;Hu=Hu+1|0;if((ea|0)!=(Hu|0)){continue}break}}Hu=ea;qs=qs+1|0;if((Iu|0)!=(qs|0)){continue}break}return(ea|0)==8192}return Su}function Ge(ea,qs){var Tu=0,Uu=0,Vu=0,Wu=0,Xu=0,Yu=0,Zu=0,_u=0,$u=0;Xu=S-16|0;S=Xu;a:{b:{if(r[qs+38>>1]<=511){Uu=p[qs+12>>2];_u=Uu;Tu=p[qs+20>>2];Vu=p[qs+16>>2];Wu=Vu+8|0;if(Wu>>>0<8){Tu=Tu+1|0}Yu=p[qs+8>>2];if((Uu|0)<(Tu|0)?1:(Uu|0)<=(Tu|0)?Yu>>>0>=Wu>>>0?0:1:0){break a}Uu=Vu+p[qs>>2]|0;Vu=q[Uu+4|0]|q[Uu+5|0]<<8|(q[Uu+6|0]<<16|q[Uu+7|0]<<24);Uu=q[Uu|0]|q[Uu+1|0]<<8|(q[Uu+2|0]<<16|q[Uu+3|0]<<24);p[Xu+8>>2]=Uu;p[Xu+12>>2]=Vu;p[qs+16>>2]=Wu;p[qs+20>>2]=Tu;break b}if(!Ee(1,Xu+8|0,qs)){break a}Wu=p[qs+16>>2];Tu=p[qs+20>>2];Yu=p[qs+8>>2];_u=p[qs+12>>2];Uu=p[Xu+8>>2];Vu=p[Xu+12>>2]}Zu=Yu-Wu|0;Yu=_u-(Tu+(Yu>>>0>>0)|0)|0;if((Yu|0)==(Vu|0)&Uu>>>0>Zu>>>0|Vu>>>0>Yu>>>0){break a}Vu=Tu+Vu|0;Tu=Wu;Zu=Tu+Uu|0;if(Zu>>>0>>0){Vu=Vu+1|0}p[qs+16>>2]=Zu;p[qs+20>>2]=Vu;Tu=Uu;if((Tu|0)<1){break a}Wu=Wu+p[qs>>2]|0;p[ea+40>>2]=Wu;qs=ea;c:{d:{e:{f:{g:{Uu=Tu+ -1|0;Vu=Wu+Uu|0;switch((q[Vu|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=Uu;ea=q[Vu|0]&63;break c}if((Tu|0)<2){break a}p[ea+44>>2]=Tu+ -2;ea=(Tu+Wu|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((Tu|0)<3){break a}p[ea+44>>2]=Tu+ -3;ea=(Tu+Wu|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=Tu+ -4;ea=(Tu+Wu|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea+32768|0;p[qs+48>>2]=ea;$u=ea>>>0<8388608}S=Xu+16|0;return $u}function He(ea,qs){var av=0,bv=0,cv=0,dv=0,ev=0,fv=0,gv=0,hv=0,iv=0,jv=0,kv=0,lv=0,mv=0;a:{av=r[qs+38>>1];if(!av){break a}gv=ea+12|0;b:{if(av>>>0<=511){bv=p[qs+12>>2];av=p[qs+20>>2];cv=p[qs+16>>2];ev=cv+4|0;if(ev>>>0<4){av=av+1|0}if((bv|0)<(av|0)?1:(bv|0)<=(av|0)?s[qs+8>>2]>=ev>>>0?0:1:0){break a}av=cv+p[qs>>2]|0;cv=q[av|0]|q[av+1|0]<<8|(q[av+2|0]<<16|q[av+3|0]<<24);p[gv>>2]=cv;bv=p[qs+20>>2];ev=p[qs+16>>2]+4|0;if(ev>>>0<4){bv=bv+1|0}av=qs;p[av+16>>2]=ev;p[av+20>>2]=bv;break b}if(!Ce(1,gv,qs)){break a}cv=p[gv>>2]}bv=p[ea>>2];av=p[ea+4>>2]-bv>>2;c:{if(cv>>>0>av>>>0){ke(ea,cv-av|0);cv=p[ea+12>>2];break c}if(cv>>>0>=av>>>0){break c}p[ea+4>>2]=bv+(cv<<2)}if(!cv){mv=1;break a}kv=p[qs+8>>2];ev=p[qs+12>>2];while(1){dv=p[qs+16>>2];av=p[qs+20>>2];if((ev|0)<(av|0)?1:(ev|0)<=(av|0)?kv>>>0>dv>>>0?0:1:0){break a}lv=p[qs>>2];hv=q[lv+dv|0];dv=dv+1|0;if(dv>>>0<1){av=av+1|0}p[qs+16>>2]=dv;p[qs+20>>2]=av;iv=hv>>>2;d:{e:{f:{jv=hv&3;if(jv>>>0>3){bv=0;break f}bv=0;g:{switch(jv-1|0){case 0:case 1:break f;case 2:break g;default:break e}}av=fv+iv|0;if(av>>>0>=cv>>>0){return 0}uh(p[ea>>2]+(fv<<2)|0,0,(hv&252)+4|0);fv=av;break d}while(1){if((ev|0)<(av|0)?1:(ev|0)<=(av|0)?kv>>>0>dv>>>0?0:1:0){return 0}hv=q[dv+lv|0];dv=dv+1|0;if(dv>>>0<1){av=av+1|0}p[qs+16>>2]=dv;p[qs+20>>2]=av;iv=hv<<(bv<<3|6)|iv;bv=bv+1|0;if((jv|0)!=(bv|0)){continue}break}}p[p[ea>>2]+(fv<<2)>>2]=iv}fv=fv+1|0;cv=p[gv>>2];if(fv>>>0>>0){continue}break}fv=ea+16|0;gv=p[ea>>2];qs=p[ea+16>>2];av=p[ea+20>>2]-qs|0;bv=av>>2;h:{if(bv>>>0<=32767){ke(fv,32768-bv|0);break h}if((av|0)==131072){break h}p[ea+20>>2]=qs+131072}i:{qs=ea+28|0;av=p[qs>>2];bv=p[ea+32>>2]-av>>3;if(cv>>>0>bv>>>0){De(qs,cv-bv|0);av=p[qs>>2];break i}if(cv>>>0>>0){p[ea+32>>2]=(cv<<3)+av}if(cv){break i}return 0}qs=0;bv=0;while(1){ea=gv+(qs<<2)|0;ev=p[ea>>2];dv=(qs<<3)+av|0;p[dv+4>>2]=bv;p[dv>>2]=ev;ea=p[ea>>2]+bv|0;if(ea>>>0>32768){break a}if(bv>>>0>>0){ev=p[fv>>2];while(1){p[ev+(bv<<2)>>2]=qs;bv=bv+1|0;if((ea|0)!=(bv|0)){continue}break}}bv=ea;qs=qs+1|0;if((cv|0)!=(qs|0)){continue}break}return(ea|0)==32768}return mv}function Ie(ea,qs){var nv=0,ov=0,pv=0,qv=0,rv=0,sv=0,tv=0,uv=0,vv=0;rv=S-16|0;S=rv;a:{b:{if(r[qs+38>>1]<=511){ov=p[qs+12>>2];uv=ov;nv=p[qs+20>>2];pv=p[qs+16>>2];qv=pv+8|0;if(qv>>>0<8){nv=nv+1|0}sv=p[qs+8>>2];if((ov|0)<(nv|0)?1:(ov|0)<=(nv|0)?sv>>>0>=qv>>>0?0:1:0){break a}ov=pv+p[qs>>2]|0;pv=q[ov+4|0]|q[ov+5|0]<<8|(q[ov+6|0]<<16|q[ov+7|0]<<24);ov=q[ov|0]|q[ov+1|0]<<8|(q[ov+2|0]<<16|q[ov+3|0]<<24);p[rv+8>>2]=ov;p[rv+12>>2]=pv;p[qs+16>>2]=qv;p[qs+20>>2]=nv;break b}if(!Ee(1,rv+8|0,qs)){break a}qv=p[qs+16>>2];nv=p[qs+20>>2];sv=p[qs+8>>2];uv=p[qs+12>>2];ov=p[rv+8>>2];pv=p[rv+12>>2]}tv=sv-qv|0;sv=uv-(nv+(sv>>>0>>0)|0)|0;if((sv|0)==(pv|0)&ov>>>0>tv>>>0|pv>>>0>sv>>>0){break a}pv=nv+pv|0;nv=qv;tv=nv+ov|0;if(tv>>>0>>0){pv=pv+1|0}p[qs+16>>2]=tv;p[qs+20>>2]=pv;nv=ov;if((nv|0)<1){break a}qv=qv+p[qs>>2]|0;p[ea+40>>2]=qv;qs=ea;c:{d:{e:{f:{g:{ov=nv+ -1|0;pv=qv+ov|0;switch((q[pv|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=ov;ea=q[pv|0]&63;break c}if((nv|0)<2){break a}p[ea+44>>2]=nv+ -2;ea=(nv+qv|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((nv|0)<3){break a}p[ea+44>>2]=nv+ -3;ea=(nv+qv|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=nv+ -4;ea=(nv+qv|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea+131072|0;p[qs+48>>2]=ea;vv=ea>>>0<33554432}S=rv+16|0;return vv}function Je(ea,qs){var wv=0,xv=0,yv=0,zv=0,Av=0,Bv=0,Cv=0,Dv=0,Ev=0,Fv=0,Gv=0,Hv=0,Iv=0;a:{wv=r[qs+38>>1];if(!wv){break a}Cv=ea+12|0;b:{if(wv>>>0<=511){xv=p[qs+12>>2];wv=p[qs+20>>2];yv=p[qs+16>>2];Av=yv+4|0;if(Av>>>0<4){wv=wv+1|0}if((xv|0)<(wv|0)?1:(xv|0)<=(wv|0)?s[qs+8>>2]>=Av>>>0?0:1:0){break a}wv=yv+p[qs>>2]|0;yv=q[wv|0]|q[wv+1|0]<<8|(q[wv+2|0]<<16|q[wv+3|0]<<24);p[Cv>>2]=yv;xv=p[qs+20>>2];Av=p[qs+16>>2]+4|0;if(Av>>>0<4){xv=xv+1|0}wv=qs;p[wv+16>>2]=Av;p[wv+20>>2]=xv;break b}if(!Ce(1,Cv,qs)){break a}yv=p[Cv>>2]}xv=p[ea>>2];wv=p[ea+4>>2]-xv>>2;c:{if(yv>>>0>wv>>>0){ke(ea,yv-wv|0);yv=p[ea+12>>2];break c}if(yv>>>0>=wv>>>0){break c}p[ea+4>>2]=xv+(yv<<2)}if(!yv){Iv=1;break a}Gv=p[qs+8>>2];Av=p[qs+12>>2];while(1){zv=p[qs+16>>2];wv=p[qs+20>>2];if((Av|0)<(wv|0)?1:(Av|0)<=(wv|0)?Gv>>>0>zv>>>0?0:1:0){break a}Hv=p[qs>>2];Dv=q[Hv+zv|0];zv=zv+1|0;if(zv>>>0<1){wv=wv+1|0}p[qs+16>>2]=zv;p[qs+20>>2]=wv;Ev=Dv>>>2;d:{e:{f:{Fv=Dv&3;if(Fv>>>0>3){xv=0;break f}xv=0;g:{switch(Fv-1|0){case 0:case 1:break f;case 2:break g;default:break e}}wv=Bv+Ev|0;if(wv>>>0>=yv>>>0){return 0}uh(p[ea>>2]+(Bv<<2)|0,0,(Dv&252)+4|0);Bv=wv;break d}while(1){if((Av|0)<(wv|0)?1:(Av|0)<=(wv|0)?Gv>>>0>zv>>>0?0:1:0){return 0}Dv=q[zv+Hv|0];zv=zv+1|0;if(zv>>>0<1){wv=wv+1|0}p[qs+16>>2]=zv;p[qs+20>>2]=wv;Ev=Dv<<(xv<<3|6)|Ev;xv=xv+1|0;if((Fv|0)!=(xv|0)){continue}break}}p[p[ea>>2]+(Bv<<2)>>2]=Ev}Bv=Bv+1|0;yv=p[Cv>>2];if(Bv>>>0>>0){continue}break}Bv=ea+16|0;Cv=p[ea>>2];qs=p[ea+16>>2];wv=p[ea+20>>2]-qs|0;xv=wv>>2;h:{if(xv>>>0<=65535){ke(Bv,65536-xv|0);break h}if((wv|0)==262144){break h}p[ea+20>>2]=qs+262144}i:{qs=ea+28|0;wv=p[qs>>2];xv=p[ea+32>>2]-wv>>3;if(yv>>>0>xv>>>0){De(qs,yv-xv|0);wv=p[qs>>2];break i}if(yv>>>0>>0){p[ea+32>>2]=(yv<<3)+wv}if(yv){break i}return 0}qs=0;xv=0;while(1){ea=Cv+(qs<<2)|0;Av=p[ea>>2];zv=(qs<<3)+wv|0;p[zv+4>>2]=xv;p[zv>>2]=Av;ea=p[ea>>2]+xv|0;if(ea>>>0>65536){break a}if(xv>>>0>>0){Av=p[Bv>>2];while(1){p[Av+(xv<<2)>>2]=qs;xv=xv+1|0;if((ea|0)!=(xv|0)){continue}break}}xv=ea;qs=qs+1|0;if((yv|0)!=(qs|0)){continue}break}return(ea|0)==65536}return Iv}function Ke(ea,qs){var Jv=0,Kv=0,Lv=0,Mv=0,Nv=0,Ov=0,Pv=0,Qv=0,Rv=0;Nv=S-16|0;S=Nv;a:{b:{if(r[qs+38>>1]<=511){Kv=p[qs+12>>2];Qv=Kv;Jv=p[qs+20>>2];Lv=p[qs+16>>2];Mv=Lv+8|0;if(Mv>>>0<8){Jv=Jv+1|0}Ov=p[qs+8>>2];if((Kv|0)<(Jv|0)?1:(Kv|0)<=(Jv|0)?Ov>>>0>=Mv>>>0?0:1:0){break a}Kv=Lv+p[qs>>2]|0;Lv=q[Kv+4|0]|q[Kv+5|0]<<8|(q[Kv+6|0]<<16|q[Kv+7|0]<<24);Kv=q[Kv|0]|q[Kv+1|0]<<8|(q[Kv+2|0]<<16|q[Kv+3|0]<<24);p[Nv+8>>2]=Kv;p[Nv+12>>2]=Lv;p[qs+16>>2]=Mv;p[qs+20>>2]=Jv;break b}if(!Ee(1,Nv+8|0,qs)){break a}Mv=p[qs+16>>2];Jv=p[qs+20>>2];Ov=p[qs+8>>2];Qv=p[qs+12>>2];Kv=p[Nv+8>>2];Lv=p[Nv+12>>2]}Pv=Ov-Mv|0;Ov=Qv-(Jv+(Ov>>>0>>0)|0)|0;if((Ov|0)==(Lv|0)&Kv>>>0>Pv>>>0|Lv>>>0>Ov>>>0){break a}Lv=Jv+Lv|0;Jv=Mv;Pv=Jv+Kv|0;if(Pv>>>0>>0){Lv=Lv+1|0}p[qs+16>>2]=Pv;p[qs+20>>2]=Lv;Jv=Kv;if((Jv|0)<1){break a}Mv=Mv+p[qs>>2]|0;p[ea+40>>2]=Mv;qs=ea;c:{d:{e:{f:{g:{Kv=Jv+ -1|0;Lv=Mv+Kv|0;switch((q[Lv|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=Kv;ea=q[Lv|0]&63;break c}if((Jv|0)<2){break a}p[ea+44>>2]=Jv+ -2;ea=(Jv+Mv|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((Jv|0)<3){break a}p[ea+44>>2]=Jv+ -3;ea=(Jv+Mv|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=Jv+ -4;ea=(Jv+Mv|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea+262144|0;p[qs+48>>2]=ea;Rv=ea>>>0<67108864}S=Nv+16|0;return Rv}function Le(ea,qs){var Sv=0,Tv=0,Uv=0,Vv=0,Wv=0,Xv=0,Yv=0,Zv=0,_v=0,$v=0,aw=0,bw=0,cw=0;a:{Sv=r[qs+38>>1];if(!Sv){break a}Yv=ea+12|0;b:{if(Sv>>>0<=511){Tv=p[qs+12>>2];Sv=p[qs+20>>2];Uv=p[qs+16>>2];Wv=Uv+4|0;if(Wv>>>0<4){Sv=Sv+1|0}if((Tv|0)<(Sv|0)?1:(Tv|0)<=(Sv|0)?s[qs+8>>2]>=Wv>>>0?0:1:0){break a}Sv=Uv+p[qs>>2]|0;Uv=q[Sv|0]|q[Sv+1|0]<<8|(q[Sv+2|0]<<16|q[Sv+3|0]<<24);p[Yv>>2]=Uv;Tv=p[qs+20>>2];Wv=p[qs+16>>2]+4|0;if(Wv>>>0<4){Tv=Tv+1|0}Sv=qs;p[Sv+16>>2]=Wv;p[Sv+20>>2]=Tv;break b}if(!Ce(1,Yv,qs)){break a}Uv=p[Yv>>2]}Tv=p[ea>>2];Sv=p[ea+4>>2]-Tv>>2;c:{if(Uv>>>0>Sv>>>0){ke(ea,Uv-Sv|0);Uv=p[ea+12>>2];break c}if(Uv>>>0>=Sv>>>0){break c}p[ea+4>>2]=Tv+(Uv<<2)}if(!Uv){cw=1;break a}aw=p[qs+8>>2];Wv=p[qs+12>>2];while(1){Vv=p[qs+16>>2];Sv=p[qs+20>>2];if((Wv|0)<(Sv|0)?1:(Wv|0)<=(Sv|0)?aw>>>0>Vv>>>0?0:1:0){break a}bw=p[qs>>2];Zv=q[bw+Vv|0];Vv=Vv+1|0;if(Vv>>>0<1){Sv=Sv+1|0}p[qs+16>>2]=Vv;p[qs+20>>2]=Sv;_v=Zv>>>2;d:{e:{f:{$v=Zv&3;if($v>>>0>3){Tv=0;break f}Tv=0;g:{switch($v-1|0){case 0:case 1:break f;case 2:break g;default:break e}}Sv=Xv+_v|0;if(Sv>>>0>=Uv>>>0){return 0}uh(p[ea>>2]+(Xv<<2)|0,0,(Zv&252)+4|0);Xv=Sv;break d}while(1){if((Wv|0)<(Sv|0)?1:(Wv|0)<=(Sv|0)?aw>>>0>Vv>>>0?0:1:0){return 0}Zv=q[Vv+bw|0];Vv=Vv+1|0;if(Vv>>>0<1){Sv=Sv+1|0}p[qs+16>>2]=Vv;p[qs+20>>2]=Sv;_v=Zv<<(Tv<<3|6)|_v;Tv=Tv+1|0;if(($v|0)!=(Tv|0)){continue}break}}p[p[ea>>2]+(Xv<<2)>>2]=_v}Xv=Xv+1|0;Uv=p[Yv>>2];if(Xv>>>0>>0){continue}break}Xv=ea+16|0;Yv=p[ea>>2];qs=p[ea+16>>2];Sv=p[ea+20>>2]-qs|0;Tv=Sv>>2;h:{if(Tv>>>0<=262143){ke(Xv,262144-Tv|0);break h}if((Sv|0)==1048576){break h}p[ea+20>>2]=qs- -1048576}i:{qs=ea+28|0;Sv=p[qs>>2];Tv=p[ea+32>>2]-Sv>>3;if(Uv>>>0>Tv>>>0){De(qs,Uv-Tv|0);Sv=p[qs>>2];break i}if(Uv>>>0>>0){p[ea+32>>2]=(Uv<<3)+Sv}if(Uv){break i}return 0}qs=0;Tv=0;while(1){ea=Yv+(qs<<2)|0;Wv=p[ea>>2];Vv=(qs<<3)+Sv|0;p[Vv+4>>2]=Tv;p[Vv>>2]=Wv;ea=p[ea>>2]+Tv|0;if(ea>>>0>262144){break a}if(Tv>>>0>>0){Wv=p[Xv>>2];while(1){p[Wv+(Tv<<2)>>2]=qs;Tv=Tv+1|0;if((ea|0)!=(Tv|0)){continue}break}}Tv=ea;qs=qs+1|0;if((Uv|0)!=(qs|0)){continue}break}return(ea|0)==262144}return cw}function Me(ea,qs){var dw=0,ew=0,fw=0,gw=0,hw=0,iw=0,jw=0,kw=0,lw=0;hw=S-16|0;S=hw;a:{b:{if(r[qs+38>>1]<=511){ew=p[qs+12>>2];kw=ew;dw=p[qs+20>>2];fw=p[qs+16>>2];gw=fw+8|0;if(gw>>>0<8){dw=dw+1|0}iw=p[qs+8>>2];if((ew|0)<(dw|0)?1:(ew|0)<=(dw|0)?iw>>>0>=gw>>>0?0:1:0){break a}ew=fw+p[qs>>2]|0;fw=q[ew+4|0]|q[ew+5|0]<<8|(q[ew+6|0]<<16|q[ew+7|0]<<24);ew=q[ew|0]|q[ew+1|0]<<8|(q[ew+2|0]<<16|q[ew+3|0]<<24);p[hw+8>>2]=ew;p[hw+12>>2]=fw;p[qs+16>>2]=gw;p[qs+20>>2]=dw;break b}if(!Ee(1,hw+8|0,qs)){break a}gw=p[qs+16>>2];dw=p[qs+20>>2];iw=p[qs+8>>2];kw=p[qs+12>>2];ew=p[hw+8>>2];fw=p[hw+12>>2]}jw=iw-gw|0;iw=kw-(dw+(iw>>>0>>0)|0)|0;if((iw|0)==(fw|0)&ew>>>0>jw>>>0|fw>>>0>iw>>>0){break a}fw=dw+fw|0;dw=gw;jw=dw+ew|0;if(jw>>>0>>0){fw=fw+1|0}p[qs+16>>2]=jw;p[qs+20>>2]=fw;dw=ew;if((dw|0)<1){break a}gw=gw+p[qs>>2]|0;p[ea+40>>2]=gw;qs=ea;c:{d:{e:{f:{g:{ew=dw+ -1|0;fw=gw+ew|0;switch((q[fw|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=ew;ea=q[fw|0]&63;break c}if((dw|0)<2){break a}p[ea+44>>2]=dw+ -2;ea=(dw+gw|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((dw|0)<3){break a}p[ea+44>>2]=dw+ -3;ea=(dw+gw|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=dw+ -4;ea=(dw+gw|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea- -1048576|0;p[qs+48>>2]=ea;lw=ea>>>0<268435456}S=hw+16|0;return lw}function Ne(ea,qs){var mw=0,nw=0,ow=0,pw=0,qw=0,rw=0,sw=0,tw=0,uw=0,vw=0,ww=0,xw=0,yw=0;a:{mw=r[qs+38>>1];if(!mw){break a}sw=ea+12|0;b:{if(mw>>>0<=511){nw=p[qs+12>>2];mw=p[qs+20>>2];ow=p[qs+16>>2];qw=ow+4|0;if(qw>>>0<4){mw=mw+1|0}if((nw|0)<(mw|0)?1:(nw|0)<=(mw|0)?s[qs+8>>2]>=qw>>>0?0:1:0){break a}mw=ow+p[qs>>2]|0;ow=q[mw|0]|q[mw+1|0]<<8|(q[mw+2|0]<<16|q[mw+3|0]<<24);p[sw>>2]=ow;nw=p[qs+20>>2];qw=p[qs+16>>2]+4|0;if(qw>>>0<4){nw=nw+1|0}mw=qs;p[mw+16>>2]=qw;p[mw+20>>2]=nw;break b}if(!Ce(1,sw,qs)){break a}ow=p[sw>>2]}nw=p[ea>>2];mw=p[ea+4>>2]-nw>>2;c:{if(ow>>>0>mw>>>0){ke(ea,ow-mw|0);ow=p[ea+12>>2];break c}if(ow>>>0>=mw>>>0){break c}p[ea+4>>2]=nw+(ow<<2)}if(!ow){yw=1;break a}ww=p[qs+8>>2];qw=p[qs+12>>2];while(1){pw=p[qs+16>>2];mw=p[qs+20>>2];if((qw|0)<(mw|0)?1:(qw|0)<=(mw|0)?ww>>>0>pw>>>0?0:1:0){break a}xw=p[qs>>2];tw=q[xw+pw|0];pw=pw+1|0;if(pw>>>0<1){mw=mw+1|0}p[qs+16>>2]=pw;p[qs+20>>2]=mw;uw=tw>>>2;d:{e:{f:{vw=tw&3;if(vw>>>0>3){nw=0;break f}nw=0;g:{switch(vw-1|0){case 0:case 1:break f;case 2:break g;default:break e}}mw=rw+uw|0;if(mw>>>0>=ow>>>0){return 0}uh(p[ea>>2]+(rw<<2)|0,0,(tw&252)+4|0);rw=mw;break d}while(1){if((qw|0)<(mw|0)?1:(qw|0)<=(mw|0)?ww>>>0>pw>>>0?0:1:0){return 0}tw=q[pw+xw|0];pw=pw+1|0;if(pw>>>0<1){mw=mw+1|0}p[qs+16>>2]=pw;p[qs+20>>2]=mw;uw=tw<<(nw<<3|6)|uw;nw=nw+1|0;if((vw|0)!=(nw|0)){continue}break}}p[p[ea>>2]+(rw<<2)>>2]=uw}rw=rw+1|0;ow=p[sw>>2];if(rw>>>0>>0){continue}break}rw=ea+16|0;sw=p[ea>>2];qs=p[ea+16>>2];mw=p[ea+20>>2]-qs|0;nw=mw>>2;h:{if(nw>>>0<=524287){ke(rw,524288-nw|0);break h}if((mw|0)==2097152){break h}p[ea+20>>2]=qs+2097152}i:{qs=ea+28|0;mw=p[qs>>2];nw=p[ea+32>>2]-mw>>3;if(ow>>>0>nw>>>0){De(qs,ow-nw|0);mw=p[qs>>2];break i}if(ow>>>0>>0){p[ea+32>>2]=(ow<<3)+mw}if(ow){break i}return 0}qs=0;nw=0;while(1){ea=sw+(qs<<2)|0;qw=p[ea>>2];pw=(qs<<3)+mw|0;p[pw+4>>2]=nw;p[pw>>2]=qw;ea=p[ea>>2]+nw|0;if(ea>>>0>524288){break a}if(nw>>>0>>0){qw=p[rw>>2];while(1){p[qw+(nw<<2)>>2]=qs;nw=nw+1|0;if((ea|0)!=(nw|0)){continue}break}}nw=ea;qs=qs+1|0;if((ow|0)!=(qs|0)){continue}break}return(ea|0)==524288}return yw}function Oe(ea,qs){var zw=0,Aw=0,Bw=0,Cw=0,Dw=0,Ew=0,Fw=0,Gw=0,Hw=0;Dw=S-16|0;S=Dw;a:{b:{if(r[qs+38>>1]<=511){Aw=p[qs+12>>2];Gw=Aw;zw=p[qs+20>>2];Bw=p[qs+16>>2];Cw=Bw+8|0;if(Cw>>>0<8){zw=zw+1|0}Ew=p[qs+8>>2];if((Aw|0)<(zw|0)?1:(Aw|0)<=(zw|0)?Ew>>>0>=Cw>>>0?0:1:0){break a}Aw=Bw+p[qs>>2]|0;Bw=q[Aw+4|0]|q[Aw+5|0]<<8|(q[Aw+6|0]<<16|q[Aw+7|0]<<24);Aw=q[Aw|0]|q[Aw+1|0]<<8|(q[Aw+2|0]<<16|q[Aw+3|0]<<24);p[Dw+8>>2]=Aw;p[Dw+12>>2]=Bw;p[qs+16>>2]=Cw;p[qs+20>>2]=zw;break b}if(!Ee(1,Dw+8|0,qs)){break a}Cw=p[qs+16>>2];zw=p[qs+20>>2];Ew=p[qs+8>>2];Gw=p[qs+12>>2];Aw=p[Dw+8>>2];Bw=p[Dw+12>>2]}Fw=Ew-Cw|0;Ew=Gw-(zw+(Ew>>>0>>0)|0)|0;if((Ew|0)==(Bw|0)&Aw>>>0>Fw>>>0|Bw>>>0>Ew>>>0){break a}Bw=zw+Bw|0;zw=Cw;Fw=zw+Aw|0;if(Fw>>>0>>0){Bw=Bw+1|0}p[qs+16>>2]=Fw;p[qs+20>>2]=Bw;zw=Aw;if((zw|0)<1){break a}Cw=Cw+p[qs>>2]|0;p[ea+40>>2]=Cw;qs=ea;c:{d:{e:{f:{g:{Aw=zw+ -1|0;Bw=Cw+Aw|0;switch((q[Bw|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=Aw;ea=q[Bw|0]&63;break c}if((zw|0)<2){break a}p[ea+44>>2]=zw+ -2;ea=(zw+Cw|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((zw|0)<3){break a}p[ea+44>>2]=zw+ -3;ea=(zw+Cw|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=zw+ -4;ea=(zw+Cw|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea+2097152|0;p[qs+48>>2]=ea;Hw=ea>>>0<536870912}S=Dw+16|0;return Hw}function Pe(ea,qs){var Iw=0,Jw=0,Kw=0,Lw=0,Mw=0,Nw=0,Ow=0,Pw=0,Qw=0,Rw=0,Sw=0,Tw=0,Uw=0;a:{Iw=r[qs+38>>1];if(!Iw){break a}Ow=ea+12|0;b:{if(Iw>>>0<=511){Jw=p[qs+12>>2];Iw=p[qs+20>>2];Kw=p[qs+16>>2];Mw=Kw+4|0;if(Mw>>>0<4){Iw=Iw+1|0}if((Jw|0)<(Iw|0)?1:(Jw|0)<=(Iw|0)?s[qs+8>>2]>=Mw>>>0?0:1:0){break a}Iw=Kw+p[qs>>2]|0;Kw=q[Iw|0]|q[Iw+1|0]<<8|(q[Iw+2|0]<<16|q[Iw+3|0]<<24);p[Ow>>2]=Kw;Jw=p[qs+20>>2];Mw=p[qs+16>>2]+4|0;if(Mw>>>0<4){Jw=Jw+1|0}Iw=qs;p[Iw+16>>2]=Mw;p[Iw+20>>2]=Jw;break b}if(!Ce(1,Ow,qs)){break a}Kw=p[Ow>>2]}Jw=p[ea>>2];Iw=p[ea+4>>2]-Jw>>2;c:{if(Kw>>>0>Iw>>>0){ke(ea,Kw-Iw|0);Kw=p[ea+12>>2];break c}if(Kw>>>0>=Iw>>>0){break c}p[ea+4>>2]=Jw+(Kw<<2)}if(!Kw){Uw=1;break a}Sw=p[qs+8>>2];Mw=p[qs+12>>2];while(1){Lw=p[qs+16>>2];Iw=p[qs+20>>2];if((Mw|0)<(Iw|0)?1:(Mw|0)<=(Iw|0)?Sw>>>0>Lw>>>0?0:1:0){break a}Tw=p[qs>>2];Pw=q[Tw+Lw|0];Lw=Lw+1|0;if(Lw>>>0<1){Iw=Iw+1|0}p[qs+16>>2]=Lw;p[qs+20>>2]=Iw;Qw=Pw>>>2;d:{e:{f:{Rw=Pw&3;if(Rw>>>0>3){Jw=0;break f}Jw=0;g:{switch(Rw-1|0){case 0:case 1:break f;case 2:break g;default:break e}}Iw=Nw+Qw|0;if(Iw>>>0>=Kw>>>0){return 0}uh(p[ea>>2]+(Nw<<2)|0,0,(Pw&252)+4|0);Nw=Iw;break d}while(1){if((Mw|0)<(Iw|0)?1:(Mw|0)<=(Iw|0)?Sw>>>0>Lw>>>0?0:1:0){return 0}Pw=q[Lw+Tw|0];Lw=Lw+1|0;if(Lw>>>0<1){Iw=Iw+1|0}p[qs+16>>2]=Lw;p[qs+20>>2]=Iw;Qw=Pw<<(Jw<<3|6)|Qw;Jw=Jw+1|0;if((Rw|0)!=(Jw|0)){continue}break}}p[p[ea>>2]+(Nw<<2)>>2]=Qw}Nw=Nw+1|0;Kw=p[Ow>>2];if(Nw>>>0>>0){continue}break}Nw=ea+16|0;Ow=p[ea>>2];qs=p[ea+16>>2];Iw=p[ea+20>>2]-qs|0;Jw=Iw>>2;h:{if(Jw>>>0<=1048575){ke(Nw,1048576-Jw|0);break h}if((Iw|0)==4194304){break h}p[ea+20>>2]=qs+4194304}i:{qs=ea+28|0;Iw=p[qs>>2];Jw=p[ea+32>>2]-Iw>>3;if(Kw>>>0>Jw>>>0){De(qs,Kw-Jw|0);Iw=p[qs>>2];break i}if(Kw>>>0>>0){p[ea+32>>2]=(Kw<<3)+Iw}if(Kw){break i}return 0}qs=0;Jw=0;while(1){ea=Ow+(qs<<2)|0;Mw=p[ea>>2];Lw=(qs<<3)+Iw|0;p[Lw+4>>2]=Jw;p[Lw>>2]=Mw;ea=p[ea>>2]+Jw|0;if(ea>>>0>1048576){break a}if(Jw>>>0>>0){Mw=p[Nw>>2];while(1){p[Mw+(Jw<<2)>>2]=qs;Jw=Jw+1|0;if((ea|0)!=(Jw|0)){continue}break}}Jw=ea;qs=qs+1|0;if((Kw|0)!=(qs|0)){continue}break}return(ea|0)==1048576}return Uw}function Qe(ea,qs){var Vw=0,Ww=0,Xw=0,Yw=0,Zw=0,_w=0,$w=0,ax=0,bx=0;Zw=S-16|0;S=Zw;a:{b:{if(r[qs+38>>1]<=511){Ww=p[qs+12>>2];ax=Ww;Vw=p[qs+20>>2];Xw=p[qs+16>>2];Yw=Xw+8|0;if(Yw>>>0<8){Vw=Vw+1|0}_w=p[qs+8>>2];if((Ww|0)<(Vw|0)?1:(Ww|0)<=(Vw|0)?_w>>>0>=Yw>>>0?0:1:0){break a}Ww=Xw+p[qs>>2]|0;Xw=q[Ww+4|0]|q[Ww+5|0]<<8|(q[Ww+6|0]<<16|q[Ww+7|0]<<24);Ww=q[Ww|0]|q[Ww+1|0]<<8|(q[Ww+2|0]<<16|q[Ww+3|0]<<24);p[Zw+8>>2]=Ww;p[Zw+12>>2]=Xw;p[qs+16>>2]=Yw;p[qs+20>>2]=Vw;break b}if(!Ee(1,Zw+8|0,qs)){break a}Yw=p[qs+16>>2];Vw=p[qs+20>>2];_w=p[qs+8>>2];ax=p[qs+12>>2];Ww=p[Zw+8>>2];Xw=p[Zw+12>>2]}$w=_w-Yw|0;_w=ax-(Vw+(_w>>>0>>0)|0)|0;if((_w|0)==(Xw|0)&Ww>>>0>$w>>>0|Xw>>>0>_w>>>0){break a}Xw=Vw+Xw|0;Vw=Yw;$w=Vw+Ww|0;if($w>>>0>>0){Xw=Xw+1|0}p[qs+16>>2]=$w;p[qs+20>>2]=Xw;Vw=Ww;if((Vw|0)<1){break a}Yw=Yw+p[qs>>2]|0;p[ea+40>>2]=Yw;qs=ea;c:{d:{e:{f:{g:{Ww=Vw+ -1|0;Xw=Yw+Ww|0;switch((q[Xw|0]>>>6)-1|0){case 2:break d;case 1:break e;case 0:break f;default:break g}}p[ea+44>>2]=Ww;ea=q[Xw|0]&63;break c}if((Vw|0)<2){break a}p[ea+44>>2]=Vw+ -2;ea=(Vw+Yw|0)+ -2|0;ea=q[ea+1|0]<<8&16128|q[ea|0];break c}if((Vw|0)<3){break a}p[ea+44>>2]=Vw+ -3;ea=(Vw+Yw|0)+ -3|0;ea=q[ea+1|0]<<8|q[ea+2|0]<<16&4128768|q[ea|0];break c}p[ea+44>>2]=Vw+ -4;ea=(Vw+Yw|0)+ -4|0;ea=q[ea+2|0]<<16|q[ea+3|0]<<24&1056964608|q[ea+1|0]<<8|q[ea|0]}ea=ea+4194304|0;p[qs+48>>2]=ea;bx=ea>>>0<1073741824}S=Zw+16|0;return bx}function Re(ea,qs){var cx=0,dx=0,ex=0,fx=0,gx=0,hx=0,ix=0,jx=0,kx=0;dx=p[ea+8>>2];ex=ea+4|0;cx=p[ex>>2];if(dx-cx>>2>>>0>=qs>>>0){ea=qs<<2;jx=ex,kx=uh(cx,0,ea)+ea|0,p[jx>>2]=kx;return}a:{ex=p[ea>>2];fx=cx-ex>>2;gx=fx+qs|0;if(gx>>>0<1073741824){fx=fx<<2;dx=dx-ex|0;ix=dx>>1;dx=dx>>2>>>0<536870911?ix>>>0>>0?gx:ix:1073741823;if(dx){if(dx>>>0>=1073741824){break a}hx=Bg(dx<<2)}fx=fx+hx|0;uh(fx,0,qs<<2);qs=(gx<<2)+hx|0;gx=(dx<<2)+hx|0;if((cx|0)!=(ex|0)){while(1){cx=cx+ -4|0;dx=p[cx>>2];p[cx>>2]=0;fx=fx+ -4|0;p[fx>>2]=dx;if((cx|0)!=(ex|0)){continue}break}ex=p[ea>>2];cx=p[ea+4>>2]}p[ea>>2]=fx;p[ea+8>>2]=gx;p[ea+4>>2]=qs;if((cx|0)!=(ex|0)){while(1){cx=cx+ -4|0;ea=p[cx>>2];p[cx>>2]=0;if(ea){m[p[p[ea>>2]+4>>2]](ea)}if((cx|0)!=(ex|0)){continue}break}}if(ex){rh(ex)}return}Pg();E()}sa(10864);E()}function Se(ea,qs){ea=ea|0;qs=qs|0;n[qs+84|0]=1;p[qs+72>>2]=p[qs+68>>2];return 1}function Te(ea){ea=ea|0;var qs=0,lx=0,mx=0,nx=0;a:{qs=p[ea+8>>2];b:{if((qs|0)<0){break b}lx=p[ea+4>>2];nx=p[lx>>2];mx=p[lx+4>>2]-nx>>2;c:{if(qs>>>0>mx>>>0){Ue(lx,qs-mx|0);qs=p[ea+8>>2];break c}if(qs>>>0>=mx>>>0){break c}p[lx+4>>2]=nx+(qs<<2)}nx=1;if((qs|0)<1){break b}ea=p[ea+4>>2];lx=p[ea>>2];mx=p[ea+4>>2]-lx>>2;ea=0;while(1){if((ea|0)==(mx|0)){break a}p[lx+(ea<<2)>>2]=ea;ea=ea+1|0;if((ea|0)<(qs|0)){continue}break}}return nx|0}Qg();E()}function Ue(ea,ox){var px=0,qx=0,rx=0,sx=0,tx=0,ux=0,vx=0,wx=0,xx=0;qx=p[ea+8>>2];rx=ea+4|0;px=p[rx>>2];if(qx-px>>2>>>0>=ox>>>0){ea=ox<<2;wx=rx,xx=uh(px,0,ea)+ea|0,p[wx>>2]=xx;return}a:{rx=p[ea>>2];tx=px-rx|0;px=tx>>2;sx=px+ox|0;if(sx>>>0<1073741824){vx=px<<2;qx=qx-rx|0;px=qx>>1;qx=qx>>2>>>0<536870911?px>>>0>>0?sx:px:1073741823;px=0;b:{if(!qx){break b}if(qx>>>0>=1073741824){break a}ux=Bg(qx<<2);px=ux}uh(vx+px|0,0,ox<<2);ox=px+(sx<<2)|0;sx=px+(qx<<2)|0;if((tx|0)>=1){th(ux,rx,tx)}p[ea>>2]=px;p[ea+8>>2]=sx;p[ea+4>>2]=ox;if(rx){rh(rx)}return}Pg();E()}sa(10968);E()}function Ve(ea){p[ea+40>>2]=0;p[ea>>2]=11108;p[ea+4>>2]=0;p[ea+8>>2]=0;p[ea+12>>2]=0;p[ea+16>>2]=0;p[ea+20>>2]=0;p[ea+24>>2]=0;p[ea+28>>2]=0;p[ea+32>>2]=0;o[ea+36>>1]=0}function We(ea,ox,yx){var zx=0,Ax=0,Bx=0,Cx=0,Dx=0,Ex=0;Ax=S-16|0;S=Ax;Cx=p[ox+12>>2];zx=p[ox+20>>2];Bx=p[ox+16>>2];Dx=Bx+5|0;if(Dx>>>0<5){zx=zx+1|0}a:{if((Cx|0)<(zx|0)?1:(Cx|0)<=(zx|0)?s[ox+8>>2]>=Dx>>>0?0:1:0){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=29;p[Ax+8>>2]=-2147483616;n[ox+29|0]=0;yx=q[11177]|q[11178]<<8|(q[11179]<<16|q[11180]<<24);zx=q[11173]|q[11174]<<8|(q[11175]<<16|q[11176]<<24);n[ox+21|0]=zx;n[ox+22|0]=zx>>>8;n[ox+23|0]=zx>>>16;n[ox+24|0]=zx>>>24;n[ox+25|0]=yx;n[ox+26|0]=yx>>>8;n[ox+27|0]=yx>>>16;n[ox+28|0]=yx>>>24;yx=p[2793];zx=p[2792];n[ox+16|0]=zx;n[ox+17|0]=zx>>>8;n[ox+18|0]=zx>>>16;n[ox+19|0]=zx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=p[2791];zx=p[2790];n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=p[2789];zx=p[2788];n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-2;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}zx=Bx+p[ox>>2]|0;Cx=q[zx|0]|q[zx+1|0]<<8|(q[zx+2|0]<<16|q[zx+3|0]<<24);n[yx|0]=Cx;n[yx+1|0]=Cx>>>8;n[yx+2|0]=Cx>>>16;n[yx+3|0]=Cx>>>24;n[yx+4|0]=q[zx+4|0];Cx=ox;zx=p[ox+20>>2];Bx=p[ox+16>>2]+5|0;if(Bx>>>0<5){zx=zx+1|0}Dx=Bx;Bx=zx;p[Cx+16>>2]=Dx;p[Cx+20>>2]=zx;if(dg(yx,11182,5)){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=17;p[Ax+8>>2]=-2147483616;n[ox+17|0]=0;n[ox+16|0]=q[11204];yx=q[11200]|q[11201]<<8|(q[11202]<<16|q[11203]<<24);zx=q[11196]|q[11197]<<8|(q[11198]<<16|q[11199]<<24);n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=q[11192]|q[11193]<<8|(q[11194]<<16|q[11195]<<24);zx=q[11188]|q[11189]<<8|(q[11190]<<16|q[11191]<<24);n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-1;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}zx=p[ox+12>>2];if((zx|0)<(Bx|0)?1:(zx|0)<=(Bx|0)?s[ox+8>>2]>Dx>>>0?0:1:0){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=29;p[Ax+8>>2]=-2147483616;n[ox+29|0]=0;yx=q[11177]|q[11178]<<8|(q[11179]<<16|q[11180]<<24);zx=q[11173]|q[11174]<<8|(q[11175]<<16|q[11176]<<24);n[ox+21|0]=zx;n[ox+22|0]=zx>>>8;n[ox+23|0]=zx>>>16;n[ox+24|0]=zx>>>24;n[ox+25|0]=yx;n[ox+26|0]=yx>>>8;n[ox+27|0]=yx>>>16;n[ox+28|0]=yx>>>24;yx=p[2793];zx=p[2792];n[ox+16|0]=zx;n[ox+17|0]=zx>>>8;n[ox+18|0]=zx>>>16;n[ox+19|0]=zx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=p[2791];zx=p[2790];n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=p[2789];zx=p[2788];n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-2;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}n[yx+5|0]=q[Dx+p[ox>>2]|0];zx=p[ox+20>>2];Bx=p[ox+16>>2]+1|0;if(Bx>>>0<1){zx=zx+1|0}p[ox+16>>2]=Bx;p[Cx+20>>2]=zx;Cx=p[ox+12>>2];if((Cx|0)<(zx|0)?1:(Cx|0)<=(zx|0)?s[ox+8>>2]>Bx>>>0?0:1:0){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=29;p[Ax+8>>2]=-2147483616;n[ox+29|0]=0;yx=q[11177]|q[11178]<<8|(q[11179]<<16|q[11180]<<24);zx=q[11173]|q[11174]<<8|(q[11175]<<16|q[11176]<<24);n[ox+21|0]=zx;n[ox+22|0]=zx>>>8;n[ox+23|0]=zx>>>16;n[ox+24|0]=zx>>>24;n[ox+25|0]=yx;n[ox+26|0]=yx>>>8;n[ox+27|0]=yx>>>16;n[ox+28|0]=yx>>>24;yx=p[2793];zx=p[2792];n[ox+16|0]=zx;n[ox+17|0]=zx>>>8;n[ox+18|0]=zx>>>16;n[ox+19|0]=zx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=p[2791];zx=p[2790];n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=p[2789];zx=p[2788];n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-2;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}n[yx+6|0]=q[Bx+p[ox>>2]|0];zx=p[ox+20>>2];Bx=p[ox+16>>2]+1|0;if(Bx>>>0<1){zx=zx+1|0}p[ox+16>>2]=Bx;p[ox+20>>2]=zx;Cx=p[ox+12>>2];if((Cx|0)<(zx|0)?1:(Cx|0)<=(zx|0)?s[ox+8>>2]>Bx>>>0?0:1:0){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=29;p[Ax+8>>2]=-2147483616;n[ox+29|0]=0;yx=q[11177]|q[11178]<<8|(q[11179]<<16|q[11180]<<24);zx=q[11173]|q[11174]<<8|(q[11175]<<16|q[11176]<<24);n[ox+21|0]=zx;n[ox+22|0]=zx>>>8;n[ox+23|0]=zx>>>16;n[ox+24|0]=zx>>>24;n[ox+25|0]=yx;n[ox+26|0]=yx>>>8;n[ox+27|0]=yx>>>16;n[ox+28|0]=yx>>>24;yx=p[2793];zx=p[2792];n[ox+16|0]=zx;n[ox+17|0]=zx>>>8;n[ox+18|0]=zx>>>16;n[ox+19|0]=zx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=p[2791];zx=p[2790];n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=p[2789];zx=p[2788];n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-2;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}n[yx+7|0]=q[Bx+p[ox>>2]|0];zx=p[ox+20>>2];Bx=p[ox+16>>2]+1|0;if(Bx>>>0<1){zx=zx+1|0}p[ox+16>>2]=Bx;p[ox+20>>2]=zx;Cx=p[ox+12>>2];if((Cx|0)<(zx|0)?1:(Cx|0)<=(zx|0)?s[ox+8>>2]>Bx>>>0?0:1:0){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=29;p[Ax+8>>2]=-2147483616;n[ox+29|0]=0;yx=q[11177]|q[11178]<<8|(q[11179]<<16|q[11180]<<24);zx=q[11173]|q[11174]<<8|(q[11175]<<16|q[11176]<<24);n[ox+21|0]=zx;n[ox+22|0]=zx>>>8;n[ox+23|0]=zx>>>16;n[ox+24|0]=zx>>>24;n[ox+25|0]=yx;n[ox+26|0]=yx>>>8;n[ox+27|0]=yx>>>16;n[ox+28|0]=yx>>>24;yx=p[2793];zx=p[2792];n[ox+16|0]=zx;n[ox+17|0]=zx>>>8;n[ox+18|0]=zx>>>16;n[ox+19|0]=zx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=p[2791];zx=p[2790];n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=p[2789];zx=p[2788];n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-2;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}n[yx+8|0]=q[Bx+p[ox>>2]|0];zx=p[ox+20>>2];Bx=zx;Ex=p[ox+16>>2];Dx=Ex+1|0;if(Dx>>>0<1){zx=zx+1|0}p[ox+16>>2]=Dx;p[ox+20>>2]=zx;Cx=p[ox+12>>2];zx=Bx;Bx=Ex+3|0;if(Bx>>>0<3){zx=zx+1|0}if((Cx|0)<(zx|0)?1:(Cx|0)<=(zx|0)?s[ox+8>>2]>=Bx>>>0?0:1:0){ox=Bg(32);p[Ax>>2]=ox;p[Ax+4>>2]=29;p[Ax+8>>2]=-2147483616;n[ox+29|0]=0;yx=q[11177]|q[11178]<<8|(q[11179]<<16|q[11180]<<24);zx=q[11173]|q[11174]<<8|(q[11175]<<16|q[11176]<<24);n[ox+21|0]=zx;n[ox+22|0]=zx>>>8;n[ox+23|0]=zx>>>16;n[ox+24|0]=zx>>>24;n[ox+25|0]=yx;n[ox+26|0]=yx>>>8;n[ox+27|0]=yx>>>16;n[ox+28|0]=yx>>>24;yx=p[2793];zx=p[2792];n[ox+16|0]=zx;n[ox+17|0]=zx>>>8;n[ox+18|0]=zx>>>16;n[ox+19|0]=zx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=p[2791];zx=p[2790];n[ox+8|0]=zx;n[ox+9|0]=zx>>>8;n[ox+10|0]=zx>>>16;n[ox+11|0]=zx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=p[2789];zx=p[2788];n[ox|0]=zx;n[ox+1|0]=zx>>>8;n[ox+2|0]=zx>>>16;n[ox+3|0]=zx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-2;Gg(ea+4|0,Ax);if(n[Ax+11|0]>-1){break a}rh(p[Ax>>2]);break a}Bx=yx;yx=Dx+p[ox>>2]|0;o[Bx+10>>1]=q[yx|0]|q[yx+1|0]<<8;yx=ox;Bx=ox;zx=p[ox+20>>2];ox=p[ox+16>>2]+2|0;if(ox>>>0<2){zx=zx+1|0}p[Bx+16>>2]=ox;p[yx+20>>2]=zx;p[ea+8>>2]=0;p[ea+12>>2]=0;p[ea>>2]=0;p[ea+4>>2]=0}S=Ax+16|0}function Xe(ea,ox){var yx=0,Fx=0,Gx=0,Hx=0;Fx=S-48|0;S=Fx;yx=Bg(36);Gx=yx+4|0;p[Gx>>2]=0;p[Gx+4>>2]=0;Hx=yx+16|0;p[Hx>>2]=0;p[Hx+4>>2]=0;p[yx>>2]=Gx;p[yx+32>>2]=0;p[yx+24>>2]=0;p[yx+28>>2]=0;p[yx+12>>2]=Hx;p[Fx+40>>2]=yx;yx=Fx+32|0;p[yx>>2]=0;a:{if(!qf(yx,p[ox+32>>2],p[Fx+40>>2])){p[Fx+24>>2]=0;p[Fx+16>>2]=0;p[Fx+20>>2]=0;ox=Bg(32);p[Fx+16>>2]=ox;p[Fx+20>>2]=26;p[Fx+24>>2]=-2147483616;n[ox+26|0]=0;yx=q[11230]|q[11231]<<8;n[ox+24|0]=yx;n[ox+25|0]=yx>>>8;yx=q[11226]|q[11227]<<8|(q[11228]<<16|q[11229]<<24);Gx=q[11222]|q[11223]<<8|(q[11224]<<16|q[11225]<<24);n[ox+16|0]=Gx;n[ox+17|0]=Gx>>>8;n[ox+18|0]=Gx>>>16;n[ox+19|0]=Gx>>>24;n[ox+20|0]=yx;n[ox+21|0]=yx>>>8;n[ox+22|0]=yx>>>16;n[ox+23|0]=yx>>>24;yx=q[11218]|q[11219]<<8|(q[11220]<<16|q[11221]<<24);Gx=q[11214]|q[11215]<<8|(q[11216]<<16|q[11217]<<24);n[ox+8|0]=Gx;n[ox+9|0]=Gx>>>8;n[ox+10|0]=Gx>>>16;n[ox+11|0]=Gx>>>24;n[ox+12|0]=yx;n[ox+13|0]=yx>>>8;n[ox+14|0]=yx>>>16;n[ox+15|0]=yx>>>24;yx=q[11210]|q[11211]<<8|(q[11212]<<16|q[11213]<<24);Gx=q[11206]|q[11207]<<8|(q[11208]<<16|q[11209]<<24);n[ox|0]=Gx;n[ox+1|0]=Gx>>>8;n[ox+2|0]=Gx>>>16;n[ox+3|0]=Gx>>>24;n[ox+4|0]=yx;n[ox+5|0]=yx>>>8;n[ox+6|0]=yx>>>16;n[ox+7|0]=yx>>>24;p[ea>>2]=-1;Gg(ea+4|0,Fx+16|0);if(n[Fx+27|0]>-1){break a}rh(p[Fx+16>>2]);break a}ox=p[ox+4>>2];p[Fx+8>>2]=0;Gx=p[Fx+40>>2];p[Fx+40>>2]=0;yx=p[ox+4>>2];p[ox+4>>2]=Gx;b:{if(!yx){p[Fx+8>>2]=0;break b}Va(yx);ox=p[Fx+8>>2];p[Fx+8>>2]=0;if(!ox){break b}Va(ox)}p[ea>>2]=0;p[ea+4>>2]=0;p[ea+8>>2]=0;p[ea+12>>2]=0}ea=p[Fx+40>>2];p[Fx+40>>2]=0;if(ea){Va(ea)}S=Fx+48|0}function Ye(ea,ox,Ix,Jx,Kx){var Lx=0,Mx=0;Lx=S-32|0;S=Lx;p[ox+32>>2]=Jx;p[ox+40>>2]=Ix;p[ox+4>>2]=Kx;We(ea,Jx,Lx+16|0);a:{if(p[ea>>2]){break a}Ix=ea+4|0;if(n[ea+15|0]<=-1){rh(p[Ix>>2])}Kx=q[Lx+23|0];if((m[p[p[ox>>2]+8>>2]](ox)|0)!=(Kx|0)){ox=Bg(64);p[Lx>>2]=ox;p[Lx+4>>2]=50;p[Lx+8>>2]=-2147483584;n[ox+50|0]=0;Jx=q[11281]|q[11282]<<8;n[ox+48|0]=Jx;n[ox+49|0]=Jx>>>8;Jx=q[11277]|q[11278]<<8|(q[11279]<<16|q[11280]<<24);Kx=q[11273]|q[11274]<<8|(q[11275]<<16|q[11276]<<24);n[ox+40|0]=Kx;n[ox+41|0]=Kx>>>8;n[ox+42|0]=Kx>>>16;n[ox+43|0]=Kx>>>24;n[ox+44|0]=Jx;n[ox+45|0]=Jx>>>8;n[ox+46|0]=Jx>>>16;n[ox+47|0]=Jx>>>24;Jx=q[11269]|q[11270]<<8|(q[11271]<<16|q[11272]<<24);Kx=q[11265]|q[11266]<<8|(q[11267]<<16|q[11268]<<24);n[ox+32|0]=Kx;n[ox+33|0]=Kx>>>8;n[ox+34|0]=Kx>>>16;n[ox+35|0]=Kx>>>24;n[ox+36|0]=Jx;n[ox+37|0]=Jx>>>8;n[ox+38|0]=Jx>>>16;n[ox+39|0]=Jx>>>24;Jx=q[11261]|q[11262]<<8|(q[11263]<<16|q[11264]<<24);Kx=q[11257]|q[11258]<<8|(q[11259]<<16|q[11260]<<24);n[ox+24|0]=Kx;n[ox+25|0]=Kx>>>8;n[ox+26|0]=Kx>>>16;n[ox+27|0]=Kx>>>24;n[ox+28|0]=Jx;n[ox+29|0]=Jx>>>8;n[ox+30|0]=Jx>>>16;n[ox+31|0]=Jx>>>24;Jx=q[11253]|q[11254]<<8|(q[11255]<<16|q[11256]<<24);Kx=q[11249]|q[11250]<<8|(q[11251]<<16|q[11252]<<24);n[ox+16|0]=Kx;n[ox+17|0]=Kx>>>8;n[ox+18|0]=Kx>>>16;n[ox+19|0]=Kx>>>24;n[ox+20|0]=Jx;n[ox+21|0]=Jx>>>8;n[ox+22|0]=Jx>>>16;n[ox+23|0]=Jx>>>24;Jx=q[11245]|q[11246]<<8|(q[11247]<<16|q[11248]<<24);Kx=q[11241]|q[11242]<<8|(q[11243]<<16|q[11244]<<24);n[ox+8|0]=Kx;n[ox+9|0]=Kx>>>8;n[ox+10|0]=Kx>>>16;n[ox+11|0]=Kx>>>24;n[ox+12|0]=Jx;n[ox+13|0]=Jx>>>8;n[ox+14|0]=Jx>>>16;n[ox+15|0]=Jx>>>24;Jx=q[11237]|q[11238]<<8|(q[11239]<<16|q[11240]<<24);Kx=q[11233]|q[11234]<<8|(q[11235]<<16|q[11236]<<24);n[ox|0]=Kx;n[ox+1|0]=Kx>>>8;n[ox+2|0]=Kx>>>16;n[ox+3|0]=Kx>>>24;n[ox+4|0]=Jx;n[ox+5|0]=Jx>>>8;n[ox+6|0]=Jx>>>16;n[ox+7|0]=Jx>>>24;p[ea>>2]=-1;Gg(Ix,Lx);if(n[Lx+11|0]>-1){break a}rh(p[Lx>>2]);break a}Jx=q[Lx+21|0];n[ox+36|0]=Jx;Mx=q[Lx+22|0];n[ox+37|0]=Mx;if((Jx+ -1&255)>>>0>=2){ox=Bg(32);p[Lx>>2]=ox;p[Lx+4>>2]=22;p[Lx+8>>2]=-2147483616;n[ox+22|0]=0;Jx=q[11302]|q[11303]<<8|(q[11304]<<16|q[11305]<<24);Kx=q[11298]|q[11299]<<8|(q[11300]<<16|q[11301]<<24);n[ox+14|0]=Kx;n[ox+15|0]=Kx>>>8;n[ox+16|0]=Kx>>>16;n[ox+17|0]=Kx>>>24;n[ox+18|0]=Jx;n[ox+19|0]=Jx>>>8;n[ox+20|0]=Jx>>>16;n[ox+21|0]=Jx>>>24;Jx=q[11296]|q[11297]<<8|(q[11298]<<16|q[11299]<<24);Kx=q[11292]|q[11293]<<8|(q[11294]<<16|q[11295]<<24);n[ox+8|0]=Kx;n[ox+9|0]=Kx>>>8;n[ox+10|0]=Kx>>>16;n[ox+11|0]=Kx>>>24;n[ox+12|0]=Jx;n[ox+13|0]=Jx>>>8;n[ox+14|0]=Jx>>>16;n[ox+15|0]=Jx>>>24;Jx=q[11288]|q[11289]<<8|(q[11290]<<16|q[11291]<<24);Kx=q[11284]|q[11285]<<8|(q[11286]<<16|q[11287]<<24);n[ox|0]=Kx;n[ox+1|0]=Kx>>>8;n[ox+2|0]=Kx>>>16;n[ox+3|0]=Kx>>>24;n[ox+4|0]=Jx;n[ox+5|0]=Jx>>>8;n[ox+6|0]=Jx>>>16;n[ox+7|0]=Jx>>>24;p[ea>>2]=-5;Gg(Ix,Lx);if(n[Lx+11|0]>-1){break a}rh(p[Lx>>2]);break a}if(!((Jx|0)!=2|(Kx?2:3)>>>0>=Mx>>>0)){ox=Bg(32);p[Lx>>2]=ox;p[Lx+4>>2]=22;p[Lx+8>>2]=-2147483616;n[ox+22|0]=0;Jx=q[11325]|q[11326]<<8|(q[11327]<<16|q[11328]<<24);Kx=q[11321]|q[11322]<<8|(q[11323]<<16|q[11324]<<24);n[ox+14|0]=Kx;n[ox+15|0]=Kx>>>8;n[ox+16|0]=Kx>>>16;n[ox+17|0]=Kx>>>24;n[ox+18|0]=Jx;n[ox+19|0]=Jx>>>8;n[ox+20|0]=Jx>>>16;n[ox+21|0]=Jx>>>24;Jx=q[11319]|q[11320]<<8|(q[11321]<<16|q[11322]<<24);Kx=q[11315]|q[11316]<<8|(q[11317]<<16|q[11318]<<24);n[ox+8|0]=Kx;n[ox+9|0]=Kx>>>8;n[ox+10|0]=Kx>>>16;n[ox+11|0]=Kx>>>24;n[ox+12|0]=Jx;n[ox+13|0]=Jx>>>8;n[ox+14|0]=Jx>>>16;n[ox+15|0]=Jx>>>24;Jx=q[11311]|q[11312]<<8|(q[11313]<<16|q[11314]<<24);Kx=q[11307]|q[11308]<<8|(q[11309]<<16|q[11310]<<24);n[ox|0]=Kx;n[ox+1|0]=Kx>>>8;n[ox+2|0]=Kx>>>16;n[ox+3|0]=Kx>>>24;n[ox+4|0]=Jx;n[ox+5|0]=Jx>>>8;n[ox+6|0]=Jx>>>16;n[ox+7|0]=Jx>>>24;p[ea>>2]=-5;Gg(Ix,Lx);if(n[Lx+11|0]>-1){break a}rh(p[Lx>>2]);break a}Jx=Jx<<8|Mx;o[p[ox+32>>2]+38>>1]=Jx;b:{if((Jx&65535)>>>0<259|o[Lx+26>>1]>-1){break b}Xe(ea,ox);if(p[ea>>2]){break a}if(n[Ix+11|0]>-1){break b}rh(p[Ix>>2])}if(!m[p[p[ox>>2]+12>>2]](ox)){ox=Bg(48);p[Lx>>2]=ox;p[Lx+4>>2]=33;p[Lx+8>>2]=-2147483600;n[ox+33|0]=0;n[ox+32|0]=q[11362];Jx=q[11358]|q[11359]<<8|(q[11360]<<16|q[11361]<<24);Kx=q[11354]|q[11355]<<8|(q[11356]<<16|q[11357]<<24);n[ox+24|0]=Kx;n[ox+25|0]=Kx>>>8;n[ox+26|0]=Kx>>>16;n[ox+27|0]=Kx>>>24;n[ox+28|0]=Jx;n[ox+29|0]=Jx>>>8;n[ox+30|0]=Jx>>>16;n[ox+31|0]=Jx>>>24;Jx=q[11350]|q[11351]<<8|(q[11352]<<16|q[11353]<<24);Kx=q[11346]|q[11347]<<8|(q[11348]<<16|q[11349]<<24);n[ox+16|0]=Kx;n[ox+17|0]=Kx>>>8;n[ox+18|0]=Kx>>>16;n[ox+19|0]=Kx>>>24;n[ox+20|0]=Jx;n[ox+21|0]=Jx>>>8;n[ox+22|0]=Jx>>>16;n[ox+23|0]=Jx>>>24;Jx=q[11342]|q[11343]<<8|(q[11344]<<16|q[11345]<<24);Kx=q[11338]|q[11339]<<8|(q[11340]<<16|q[11341]<<24);n[ox+8|0]=Kx;n[ox+9|0]=Kx>>>8;n[ox+10|0]=Kx>>>16;n[ox+11|0]=Kx>>>24;n[ox+12|0]=Jx;n[ox+13|0]=Jx>>>8;n[ox+14|0]=Jx>>>16;n[ox+15|0]=Jx>>>24;Jx=q[11334]|q[11335]<<8|(q[11336]<<16|q[11337]<<24);Kx=q[11330]|q[11331]<<8|(q[11332]<<16|q[11333]<<24);n[ox|0]=Kx;n[ox+1|0]=Kx>>>8;n[ox+2|0]=Kx>>>16;n[ox+3|0]=Kx>>>24;n[ox+4|0]=Jx;n[ox+5|0]=Jx>>>8;n[ox+6|0]=Jx>>>16;n[ox+7|0]=Jx>>>24;p[ea>>2]=-1;Gg(Ix,Lx);if(n[Lx+11|0]>-1){break a}rh(p[Lx>>2]);break a}if(!m[p[p[ox>>2]+20>>2]](ox)){ox=Bg(32);p[Lx>>2]=ox;p[Lx+4>>2]=31;p[Lx+8>>2]=-2147483616;n[ox+31|0]=0;Jx=q[11391]|q[11392]<<8|(q[11393]<<16|q[11394]<<24);Kx=q[11387]|q[11388]<<8|(q[11389]<<16|q[11390]<<24);n[ox+23|0]=Kx;n[ox+24|0]=Kx>>>8;n[ox+25|0]=Kx>>>16;n[ox+26|0]=Kx>>>24;n[ox+27|0]=Jx;n[ox+28|0]=Jx>>>8;n[ox+29|0]=Jx>>>16;n[ox+30|0]=Jx>>>24;Jx=q[11384]|q[11385]<<8|(q[11386]<<16|q[11387]<<24);Kx=q[11380]|q[11381]<<8|(q[11382]<<16|q[11383]<<24);n[ox+16|0]=Kx;n[ox+17|0]=Kx>>>8;n[ox+18|0]=Kx>>>16;n[ox+19|0]=Kx>>>24;n[ox+20|0]=Jx;n[ox+21|0]=Jx>>>8;n[ox+22|0]=Jx>>>16;n[ox+23|0]=Jx>>>24;Jx=q[11376]|q[11377]<<8|(q[11378]<<16|q[11379]<<24);Kx=q[11372]|q[11373]<<8|(q[11374]<<16|q[11375]<<24);n[ox+8|0]=Kx;n[ox+9|0]=Kx>>>8;n[ox+10|0]=Kx>>>16;n[ox+11|0]=Kx>>>24;n[ox+12|0]=Jx;n[ox+13|0]=Jx>>>8;n[ox+14|0]=Jx>>>16;n[ox+15|0]=Jx>>>24;Jx=q[11368]|q[11369]<<8|(q[11370]<<16|q[11371]<<24);Kx=q[11364]|q[11365]<<8|(q[11366]<<16|q[11367]<<24);n[ox|0]=Kx;n[ox+1|0]=Kx>>>8;n[ox+2|0]=Kx>>>16;n[ox+3|0]=Kx>>>24;n[ox+4|0]=Jx;n[ox+5|0]=Jx>>>8;n[ox+6|0]=Jx>>>16;n[ox+7|0]=Jx>>>24;p[ea>>2]=-1;Gg(Ix,Lx);if(n[Lx+11|0]>-1){break a}rh(p[Lx>>2]);break a}if(!m[p[p[ox>>2]+24>>2]](ox)){ox=Bg(48);p[Lx>>2]=ox;p[Lx+4>>2]=34;p[Lx+8>>2]=-2147483600;n[ox+34|0]=0;Jx=q[11428]|q[11429]<<8;n[ox+32|0]=Jx;n[ox+33|0]=Jx>>>8;Jx=q[11424]|q[11425]<<8|(q[11426]<<16|q[11427]<<24);Kx=q[11420]|q[11421]<<8|(q[11422]<<16|q[11423]<<24);n[ox+24|0]=Kx;n[ox+25|0]=Kx>>>8;n[ox+26|0]=Kx>>>16;n[ox+27|0]=Kx>>>24;n[ox+28|0]=Jx;n[ox+29|0]=Jx>>>8;n[ox+30|0]=Jx>>>16;n[ox+31|0]=Jx>>>24;Jx=q[11416]|q[11417]<<8|(q[11418]<<16|q[11419]<<24);Kx=q[11412]|q[11413]<<8|(q[11414]<<16|q[11415]<<24);n[ox+16|0]=Kx;n[ox+17|0]=Kx>>>8;n[ox+18|0]=Kx>>>16;n[ox+19|0]=Kx>>>24;n[ox+20|0]=Jx;n[ox+21|0]=Jx>>>8;n[ox+22|0]=Jx>>>16;n[ox+23|0]=Jx>>>24;Jx=q[11408]|q[11409]<<8|(q[11410]<<16|q[11411]<<24);Kx=q[11404]|q[11405]<<8|(q[11406]<<16|q[11407]<<24);n[ox+8|0]=Kx;n[ox+9|0]=Kx>>>8;n[ox+10|0]=Kx>>>16;n[ox+11|0]=Kx>>>24;n[ox+12|0]=Jx;n[ox+13|0]=Jx>>>8;n[ox+14|0]=Jx>>>16;n[ox+15|0]=Jx>>>24;Jx=q[11400]|q[11401]<<8|(q[11402]<<16|q[11403]<<24);Kx=q[11396]|q[11397]<<8|(q[11398]<<16|q[11399]<<24);n[ox|0]=Kx;n[ox+1|0]=Kx>>>8;n[ox+2|0]=Kx>>>16;n[ox+3|0]=Kx>>>24;n[ox+4|0]=Jx;n[ox+5|0]=Jx>>>8;n[ox+6|0]=Jx>>>16;n[ox+7|0]=Jx>>>24;p[ea>>2]=-1;Gg(Ix,Lx);if(n[Lx+11|0]>-1){break a}rh(p[Lx>>2]);break a}p[ea>>2]=0;p[ea+4>>2]=0;p[ea+8>>2]=0;p[ea+12>>2]=0}S=Lx+32|0}function Ze(ea){ea=ea|0;var ox=0,Ix=0,Jx=0,Kx=0,Nx=0,Ox=0,Px=0,Qx=0,Rx=0,Sx=0,Tx=0,Ux=0;a:{ox=p[ea+32>>2];Kx=p[ox+16>>2];Ox=p[ox+12>>2];Jx=p[ox+20>>2];b:{if((Ox|0)<(Jx|0)?1:(Ox|0)<=(Jx|0)?s[ox+8>>2]>Kx>>>0?0:1:0){break b}Nx=q[Kx+p[ox>>2]|0];Px=Kx+1|0;if(Px>>>0<1){Jx=Jx+1|0}p[ox+16>>2]=Px;p[ox+20>>2]=Jx;c:{if(!Nx){break c}while(1){if(m[p[p[ea>>2]+16>>2]](ea,Ix)){Ix=Ix+1|0;if((Nx|0)!=(Ix|0)){continue}break c}break}return 0}Ix=p[ea+8>>2];Jx=p[ea+12>>2];if((Ix|0)!=(Jx|0)){while(1){ox=p[Ix>>2];if(!m[p[p[ox>>2]+8>>2]](ox,ea,p[ea+4>>2])){break b}Ix=Ix+4|0;if((Jx|0)!=(Ix|0)){continue}break}}d:{if(!Nx){break d}Ix=0;Jx=ea+8|0;while(1){ox=p[p[Jx>>2]+(Ix<<2)>>2];if(!m[p[p[ox>>2]+12>>2]](ox,p[ea+32>>2])){break a}Ix=Ix+1|0;if((Nx|0)!=(Ix|0)){continue}break}if(!Nx){break d}Kx=ea+20|0;Qx=ea+8|0;Ox=ea+24|0;while(1){Ix=0;Px=Rx<<2;ox=p[Px+p[Qx>>2]>>2];Jx=m[p[p[ox>>2]+24>>2]](ox)|0;if((Jx|0)>0){while(1){ox=p[p[Qx>>2]+Px>>2];ox=m[p[p[ox>>2]+20>>2]](ox,Ix)|0;Sx=p[ea+20>>2];Tx=p[Ox>>2]-Sx>>2;e:{if(ox>>>0>>0){break e}Ux=ox+1|0;if(Ux>>>0>Tx>>>0){vb(Kx,Ux-Tx|0);Sx=p[Kx>>2];break e}if(Ux>>>0>=Tx>>>0){break e}p[Ox>>2]=(Ux<<2)+Sx}p[(ox<<2)+Sx>>2]=Rx;Ix=Ix+1|0;if((Jx|0)!=(Ix|0)){continue}break}}Rx=Rx+1|0;if((Rx|0)!=(Nx|0)){continue}break}}Qx=0;if(!m[p[p[ea>>2]+28>>2]](ea)){break b}Qx=m[p[p[ea>>2]+32>>2]](ea)|0}return Qx|0}return 0}function _e(ea){ea=ea|0;var Vx=0,Wx=0,Xx=0,Yx=0;Wx=1;Vx=p[ea+8>>2];Xx=p[ea+12>>2];a:{if((Vx|0)==(Xx|0)){break a}while(1){Yx=p[Vx>>2];if(m[p[p[Yx>>2]+16>>2]](Yx,p[ea+32>>2])){Vx=Vx+4|0;if((Xx|0)!=(Vx|0)){continue}break a}break}Wx=0}return Wx|0}function $e(ea,Zx){var _x=0,$x=0;a:{if((Zx|0)<0){break a}_x=p[ea+4>>2];if(p[_x+12>>2]-p[_x+8>>2]>>2<=(Zx|0)){break a}ea=p[p[ea+8>>2]+(p[p[ea+20>>2]+(Zx<<2)>>2]<<2)>>2];$x=m[p[p[ea>>2]+32>>2]](ea,Zx)|0}return $x}function af(ea){ea=ea|0;var Zx=0,ay=0,by=0,cy=0,dy=0,ey=0,fy=0;by=p[ea+32>>2];ay=by;cy=p[ay+8>>2];dy=p[ay+12>>2];Zx=p[ay+20>>2];fy=cy;cy=p[ay+16>>2];ay=cy+4|0;if(ay>>>0<4){Zx=Zx+1|0}ey=ay;ay=Zx;if((dy|0)>(Zx|0)?1:(dy|0)>=(Zx|0)?fy>>>0>>0?0:1:0){Zx=cy+p[by>>2]|0;Zx=q[Zx|0]|q[Zx+1|0]<<8|(q[Zx+2|0]<<16|q[Zx+3|0]<<24);p[by+16>>2]=ey;p[by+20>>2]=ay;p[p[ea+4>>2]+80>>2]=Zx;ea=1}else{ea=0}return ea|0}function bf(ea,gy){ea=ea|0;gy=gy|0;var hy=0,iy=0,jy=0,ky=0,ly=0,my=0,ny=0;ky=S-16|0;S=ky;ly=Bg(64);hy=Bg(12);p[hy+8>>2]=p[p[ea+4>>2]+80>>2];p[hy>>2]=11044;p[hy+4>>2]=0;p[ky+8>>2]=hy;Rb(ly,ky+8|0);a:{if((gy|0)>=0){hy=p[ea+12>>2];my=ea+8|0;ny=p[my>>2];iy=hy-ny>>2;b:{if((iy|0)>(gy|0)){break b}jy=gy+1|0;if(iy>>>0<=gy>>>0){Re(my,jy-iy|0);break b}if(jy>>>0>=iy>>>0){break b}jy=ny+(jy<<2)|0;if((jy|0)!=(hy|0)){while(1){hy=hy+ -4|0;iy=p[hy>>2];p[hy>>2]=0;if(iy){m[p[p[iy>>2]+4>>2]](iy)}if((hy|0)!=(jy|0)){continue}break}}p[ea+12>>2]=jy}gy=p[my>>2]+(gy<<2)|0;ea=p[gy>>2];p[gy>>2]=ly;iy=1;if(!ea){break a}m[p[p[ea>>2]+4>>2]](ea);break a}m[p[p[ly>>2]+4>>2]](ly)}ea=p[ky+8>>2];p[ky+8>>2]=0;if(ea){m[p[p[ea>>2]+4>>2]](ea)}S=ky+16|0;return iy|0}function cf(ea,gy,oy){var py=0,qy=0,ry=0;if((gy|0)>0){while(1){qy=py<<2;ry=p[qy+ea>>2];p[oy+qy>>2]=0-(ry&1)^ry>>>1;py=py+1|0;if((py|0)!=(gy|0)){continue}break}}}function df(ea){p[ea+16>>2]=0;p[ea+20>>2]=0;p[ea>>2]=0;p[ea+4>>2]=0;p[ea+8>>2]=0;p[ea+24>>2]=0;p[ea+28>>2]=0}function ef(p,ea,gy,oy){return ff(p,ea,gy,oy)}function ff(ea,gy,oy,sy){var ty=0,uy=0,vy=0;a:{if(!gy){gy=oy;sy=gy>>>0<0?sy+1|0:sy;if((sy|0)<0?1:(sy|0)<=0?gy>>>0>=0?0:1:0){return 0}sy=p[ea>>2];oy=p[ea+4>>2]-sy|0;if(oy>>>0>>0){Fb(ea,gy-oy|0);break a}if(oy>>>0<=gy>>>0){break a}p[ea+4>>2]=gy+sy;break a}if((sy|0)<0?1:(sy|0)<=0?oy>>>0>=0?0:1:0){return 0}uy=oy;if(oy>>>0<0){sy=sy+1|0}vy=p[ea>>2];ty=p[ea+4>>2]-vy|0;b:{if((sy|0)<0?1:(sy|0)<=0?uy>>>0>ty>>>0?0:1:0){break b}sy=uy;if(ty>>>0>>0){Fb(ea,sy-ty|0);break b}if(ty>>>0<=sy>>>0){break b}p[ea+4>>2]=sy+vy}if(!oy){break a}vh(p[ea>>2],gy,oy)}gy=ea+24|0;oy=gy;sy=gy;ea=p[gy+4>>2];gy=p[gy>>2]+1|0;if(gy>>>0<1){ea=ea+1|0}p[sy>>2]=gy;p[oy+4>>2]=ea;return 1}function gf(ea,gy){var oy=0,sy=0;sy=p[ea>>2];oy=p[ea+4>>2]-sy|0;a:{if(oy>>>0>>0){Fb(ea,gy-oy|0);break a}if(oy>>>0<=gy>>>0){break a}p[ea+4>>2]=gy+sy}gy=ea+24|0;oy=gy;sy=gy;ea=p[gy+4>>2];gy=p[gy>>2]+1|0;if(gy>>>0<1){ea=ea+1|0}p[sy>>2]=gy;p[oy+4>>2]=ea}function hf(ea){o[ea+38>>1]=0;p[ea>>2]=0;p[ea+8>>2]=0;p[ea+12>>2]=0;p[ea+16>>2]=0;p[ea+20>>2]=0;p[ea+24>>2]=0;p[ea+28>>2]=0;n[ea+29|0]=0;n[ea+30|0]=0;n[ea+31|0]=0;n[ea+32|0]=0;n[ea+33|0]=0;n[ea+34|0]=0;n[ea+35|0]=0;n[ea+36|0]=0;return ea}function jf(ea){var gy=0,wy=0,xy=0;n[ea+36|0]=1;p[ea+32>>2]=0;gy=p[ea+16>>2];wy=gy+p[ea>>2]|0;p[ea+24>>2]=wy;xy=ea;ea=p[ea+8>>2];p[xy+28>>2]=(ea-gy|0)+wy}function kf(ea){ea=ea+ -1|0;if(ea>>>0<=10){return p[(ea<<2)+11520>>2]}return-1}function lf(ea,yy){var zy=0,Ay=0,By=0,Cy=0,Dy=0,Ey=0,Fy=0,Gy=0;Dy=ea+4|0;ea=p[Dy>>2];a:{b:{if(!ea){break b}zy=q[yy+11|0];Ay=zy<<24>>24<0;By=Ay?p[yy+4>>2]:zy;Fy=Ay?p[yy>>2]:yy;zy=Dy;while(1){yy=q[ea+27|0];Gy=yy<<24>>24<0;Ey=Gy?p[ea+20>>2]:yy;Cy=By>>>0>>0;Ay=Cy?By:Ey;c:{if(Ay){yy=ea+16|0;yy=dg(Gy?p[yy>>2]:yy,Fy,Ay);if(yy){break c}}yy=Ey>>>0>>0?-1:Cy}zy=(yy|0)<0?zy:ea;ea=p[(yy>>>29&4)+ea>>2];if(ea){continue}break}if((zy|0)==(Dy|0)){break b}ea=q[zy+27|0];Cy=ea<<24>>24<0;d:{Ay=Cy?p[zy+20>>2]:ea;yy=Ay>>>0>>0?Ay:By;if(yy){ea=zy+16|0;ea=dg(Fy,Cy?p[ea>>2]:ea,yy);if(ea){break d}}if(By>>>0>>0){break b}break a}if((ea|0)>-1){break a}}zy=Dy}return zy}function mf(ea,yy){var Hy=0;yy=lf(ea,yy);a:{if((yy|0)==(ea+4|0)){break a}ea=yy+28|0;if(n[yy+39|0]<=-1){ea=p[ea>>2]}ea=cg(ea);if((ea|0)==-1){break a}Hy=(ea|0)!=0}return Hy}function nf(ea,yy){var Iy=0,Jy=0,Ky=0,Ly=0,My=0,Ny=0,Oy=0,Py=0,Qy=0,Ry=0,Sy=0;Jy=S-48|0;S=Jy;p[Jy+40>>2]=0;p[Jy+32>>2]=0;p[Jy+36>>2]=0;Iy=Bg(8);p[Iy+4>>2]=yy;p[Iy>>2]=0;yy=Iy+8|0;p[Jy+40>>2]=yy;p[Jy+36>>2]=yy;p[Jy+32>>2]=Iy;a:{b:{c:{d:{while(1){yy=yy+ -8|0;Ny=p[yy+4>>2];Sy=p[yy>>2];p[Jy+36>>2]=yy;if(Sy){p[Jy+24>>2]=0;p[Jy+16>>2]=0;p[Jy+20>>2]=0;Py=1;yy=p[ea>>2];My=p[yy+16>>2];Ly=p[yy+12>>2];Iy=p[yy+20>>2];e:{if((Ly|0)<(Iy|0)?1:(Ly|0)<=(Iy|0)?s[yy+8>>2]>My>>>0?0:1:0){break e}Ky=q[My+p[yy>>2]|0];Ly=My+1|0;if(Ly>>>0<1){Iy=Iy+1|0}p[yy+16>>2]=Ly;p[yy+20>>2]=Iy;Kg(Jy+16|0,Ky);if(Ky){Ly=p[ea>>2];Ry=Og(Jy+16|0);Oy=p[Ly+12>>2];My=p[Ly+20>>2];Qy=p[Ly+16>>2];yy=Ky;Iy=Qy+yy|0;if(Iy>>>0>>0){My=My+1|0}if((Oy|0)<(My|0)?1:(Oy|0)<=(My|0)?s[Ly+8>>2]>=Iy>>>0?0:1:0){break e}th(Ry,Qy+p[Ly>>2]|0,Ky);Iy=Ly;Ly=Iy;My=p[Iy+20>>2];Ky=yy+p[Iy+16>>2]|0;if(Ky>>>0>>0){My=My+1|0}p[Ly+16>>2]=Ky;p[Iy+20>>2]=My}Ny=Bg(24);Iy=Ny+4|0;p[Iy>>2]=0;p[Iy+4>>2]=0;yy=Ny+16|0;p[yy>>2]=0;p[yy+4>>2]=0;p[Ny>>2]=Iy;p[Ny+12>>2]=yy;p[Jy+8>>2]=Ny;yf(Sy,Jy+16|0,Jy+8|0);yy=p[Jy+8>>2];Py=0;p[Jy+8>>2]=0;if(!yy){break e}Xa(yy+12|0,p[yy+16>>2]);Ya(yy,p[yy+4>>2]);rh(yy)}if(n[Jy+27|0]<=-1){rh(p[Jy+16>>2])}if(Py){break b}}if(!Ny){break b}p[Jy+16>>2]=0;if(!of(1,Jy+16|0,p[ea>>2])){break b}yy=0;Iy=p[Jy+16>>2];if(Iy){while(1){if(!pf(ea,Ny)){break b}yy=yy+1|0;if(yy>>>0>>0){continue}break}}p[Jy+4>>2]=0;if(!of(1,Jy+4|0,p[ea>>2])){break b}My=p[Jy+4>>2];if(My){Py=0;while(1){yy=p[Jy+36>>2];Iy=p[Jy+40>>2];f:{if(yy>>>0>>0){p[yy+4>>2]=0;p[yy>>2]=Ny;p[Jy+36>>2]=p[Jy+36>>2]+8;break f}Oy=p[Jy+32>>2];Ry=yy-Oy|0;yy=Ry>>3;Qy=yy+1|0;if(Qy>>>0>=536870912){break d}Ly=yy<<3;Ky=Iy-Oy|0;Iy=Ky>>2;Ky=Ky>>3>>>0<268435455?Iy>>>0>>0?Qy:Iy:536870911;yy=0;g:{if(!Ky){break g}if(Ky>>>0>=536870912){break c}yy=Bg(Ky<<3)}Iy=Ly+yy|0;p[Iy+4>>2]=0;p[Iy>>2]=Ny;Ky=yy+(Ky<<3)|0;Iy=Iy+8|0;if((Ry|0)>=1){th(yy,Oy,Ry)}p[Jy+40>>2]=Ky;p[Jy+36>>2]=Iy;p[Jy+32>>2]=yy;if(!Oy){break f}rh(Oy)}Py=Py+1|0;if(Py>>>0>>0){continue}break}}yy=p[Jy+36>>2];Iy=p[Jy+32>>2];if((yy|0)!=(Iy|0)){continue}break}ea=1;break a}Pg();E()}sa(11564);E()}Iy=p[Jy+32>>2];ea=0}if(Iy){p[Jy+36>>2]=Iy;rh(Iy)}S=Jy+48|0;return ea}function of(ea,yy,Ty){var Uy=0,Vy=0,Wy=0,Xy=0;a:{if(ea>>>0>5){break a}Wy=p[Ty+16>>2];Uy=p[Ty+12>>2];Vy=p[Ty+20>>2];if((Uy|0)<(Vy|0)?1:(Uy|0)<=(Vy|0)?s[Ty+8>>2]>Wy>>>0?0:1:0){break a}Uy=q[Wy+p[Ty>>2]|0];Wy=Wy+1|0;if(Wy>>>0<1){Vy=Vy+1|0}p[Ty+16>>2]=Wy;p[Ty+20>>2]=Vy;Vy=yy;if(Uy&128){if(!of(ea+1|0,yy,Ty)){break a}ea=p[yy>>2]<<7;p[yy>>2]=ea;Uy=ea|Uy&127}p[Vy>>2]=Uy;Xy=1}return Xy}function pf(ea,yy){var Ty=0,Yy=0,Zy=0,_y=0,$y=0,az=0,bz=0,cz=0,dz=0,ez=0;Yy=S-32|0;S=Yy;p[Yy+24>>2]=0;p[Yy+16>>2]=0;p[Yy+20>>2]=0;a:{Zy=p[ea>>2];Ty=Zy;$y=p[Ty+16>>2];az=s[Ty+8>>2]>$y>>>0?0:1;_y=p[Ty+12>>2];Ty=p[Ty+20>>2];b:{if((_y|0)<(Ty|0)?1:(_y|0)<=(Ty|0)?az:0){break b}az=q[$y+p[Zy>>2]|0];_y=Ty;Ty=$y+1|0;if(Ty>>>0<1){_y=_y+1|0}p[Zy+16>>2]=Ty;p[Zy+20>>2]=_y;Kg(Yy+16|0,az);if(az){_y=p[ea>>2];cz=Og(Yy+16|0);ez=p[_y+12>>2];$y=p[_y+20>>2];dz=p[_y+16>>2];Zy=az;Ty=dz+Zy|0;if(Ty>>>0>>0){$y=$y+1|0}if((ez|0)<($y|0)?1:(ez|0)<=($y|0)?s[_y+8>>2]>=Ty>>>0?0:1:0){break b}th(cz,dz+p[_y>>2]|0,az);Ty=_y;_y=Ty;$y=p[Ty+20>>2];az=Zy+p[Ty+16>>2]|0;if(az>>>0>>0){$y=$y+1|0}p[_y+16>>2]=az;p[Ty+20>>2]=$y}p[Yy+12>>2]=0;Ty=of(1,Yy+12|0,p[ea>>2]);Zy=p[Yy+12>>2];if(!Zy|!Ty){break b}p[Yy+8>>2]=0;p[Yy>>2]=0;p[Yy+4>>2]=0;if((Zy|0)<=-1){break a}bz=Bg(Zy);p[Yy>>2]=bz;p[Yy+4>>2]=bz;p[Yy+8>>2]=Zy+bz;Ty=Zy;while(1){n[bz|0]=0;bz=p[Yy+4>>2]+1|0;p[Yy+4>>2]=bz;Ty=Ty+ -1|0;if(Ty){continue}break}bz=0;Ty=p[ea>>2];ea=p[Ty+8>>2];dz=p[Ty+12>>2];_y=ea;cz=p[Ty+20>>2];$y=p[Ty+16>>2];ea=Zy;az=$y+Zy|0;if(az>>>0>>0){cz=cz+1|0}if((dz|0)>(cz|0)?1:(dz|0)>=(cz|0)?_y>>>0>>0?0:1:0){th(p[Yy>>2],$y+p[Ty>>2]|0,Zy);Zy=Ty;az=Ty;_y=p[Ty+20>>2];Ty=ea+p[Ty+16>>2]|0;if(Ty>>>0>>0){_y=_y+1|0}p[az+16>>2]=Ty;p[Zy+20>>2]=_y;xf(yy,Yy+16|0,Yy);bz=1}ea=p[Yy>>2];if(!ea){break b}p[Yy+4>>2]=ea;rh(ea)}if(n[Yy+27|0]<=-1){rh(p[Yy+16>>2])}S=Yy+32|0;return bz}Pg();E()} - - - -function qf(a,b,c){var d=0,e=0,f=0,g=0,h=0;e=S-16|0;S=e;a:{b:{if(!c){break b}p[a>>2]=b;p[e+12>>2]=0;d=0;if(!of(1,e+12|0,b)){break a}c:{h=p[e+12>>2];if(h){b=0;while(1){if(!of(1,e+8|0,p[a>>2])){break b}d=Bg(28);f=d+4|0;p[f>>2]=0;p[f+4>>2]=0;g=d+16|0;p[g>>2]=0;p[g+4>>2]=0;p[d>>2]=f;f=d+12|0;p[f>>2]=g;p[d+24>>2]=p[e+8>>2];if(!nf(a,d)){break c}p[e>>2]=d;rf(c,e);d=p[e>>2];p[e>>2]=0;if(d){Xa(d+12|0,p[d+16>>2]);Ya(d,p[d+4>>2]);rh(d)}b=b+1|0;if(b>>>0>>0){continue}break}}d=nf(a,c);break a}Xa(f,p[d+16>>2]);Ya(d,p[d+4>>2]);rh(d)}d=0}S=e+16|0;return d}function rf(a,b){var c=0,i=0,j=0;i=p[b>>2];if(!i){return}c=a+28|0;j=p[c>>2];if(j>>>0>2]){p[b>>2]=0;p[j>>2]=i;p[c>>2]=p[c>>2]+4;return}sf(a+24|0,b)}function sf(a,b){var k=0,l=0,m=0,n=0,o=0;a:{b:{c:{m=p[a>>2];n=p[a+4>>2]-m>>2;k=n+1|0;if(k>>>0<1073741824){m=p[a+8>>2]-m|0;o=m>>1;k=m>>2>>>0<536870911?o>>>0>>0?k:o:1073741823;if(k){if(k>>>0>=1073741824){break c}l=Bg(k<<2)}m=p[b>>2];p[b>>2]=0;b=(n<<2)+l|0;p[b>>2]=m;m=(k<<2)+l|0;n=b+4|0;k=p[a+4>>2];l=p[a>>2];if((k|0)==(l|0)){break b}while(1){k=k+ -4|0;o=p[k>>2];p[k>>2]=0;b=b+ -4|0;p[b>>2]=o;if((k|0)!=(l|0)){continue}break}l=p[a+4>>2];k=p[a>>2];break a}Pg();E()}sa(11632);E()}k=l}p[a>>2]=b;p[a+8>>2]=m;p[a+4>>2]=n;if((k|0)!=(l|0)){while(1){l=l+ -4|0;a=p[l>>2];p[l>>2]=0;if(a){Xa(a+12|0,p[a+16>>2]);Ya(a,p[a+4>>2]);rh(a)}if((k|0)!=(l|0)){continue}break}}if(k){rh(k)}}function tf(a,b,q,r){var s=0,t=0,u=0,v=0;s=S-16|0;S=s;v=a;t=vf(b,s+12|0,q);q=p[t>>2];if(q){b=0}else{q=Bg(32);Gg(q+16|0,p[r>>2]);p[q+28>>2]=0;p[q+8>>2]=p[s+12>>2];p[q>>2]=0;p[q+4>>2]=0;p[t>>2]=q;r=q;u=p[p[b>>2]>>2];if(u){p[b>>2]=u;r=p[t>>2]}pe(p[b+4>>2],r);b=b+8|0;p[b>>2]=p[b>>2]+1;b=1}n[v+4|0]=b;p[a>>2]=q;S=s+16|0}function uf(a,b){var q=0,r=0,w=0;q=p[b+4>>2];a:{if(!q){r=p[b+8>>2];if(p[r>>2]==(b|0)){break a}w=b+8|0;while(1){q=p[w>>2];w=q+8|0;r=p[q+8>>2];if((q|0)!=p[r>>2]){continue}break}break a}while(1){r=q;q=p[q>>2];if(q){continue}break}}if(p[a>>2]==(b|0)){p[a>>2]=r}r=a+8|0;p[r>>2]=p[r>>2]+ -1;zf(p[a+4>>2],b);a=p[b+28>>2];if(a){p[b+32>>2]=a;rh(a)}if(n[b+27|0]<=-1){rh(p[b+16>>2])}rh(b)}function vf(a,b,x){var y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;a:{y=a+4|0;a=p[y>>2];if(a){A=q[x+11|0];B=A<<24>>24<0;A=B?p[x+4>>2]:A;E=B?p[x>>2]:x;while(1){x=a+16|0;z=q[a+27|0];B=z<<24>>24<0;C=B?p[a+20>>2]:z;F=C>>>0>>0;b:{c:{d:{e:{f:{g:{h:{z=F?C:A;if(z){D=B?p[x>>2]:x;G=dg(E,D,z);if(G){break h}}if(A>>>0>>0){break g}if(!z){break e}D=B?p[x>>2]:x;break f}if((G|0)>-1){break f}}x=p[a>>2];if(x){break b}p[b>>2]=a;return a}x=dg(D,E,z);if(x){break d}}if(F){break c}break a}if((x|0)>-1){break a}}y=a+4|0;x=p[a+4>>2];if(!x){break a}a=y}y=a;a=x;continue}}p[b>>2]=y;return y}p[b>>2]=a;return y}function wf(a,b,x){var H=0,I=0,J=0,K=0,L=0;H=Bg(40);n[a+8|0]=0;p[a+4>>2]=b+4;p[a>>2]=H;b=x+8|0;p[H+24>>2]=p[b>>2];I=p[x+4>>2];p[H+16>>2]=p[x>>2];p[H+20>>2]=I;p[x>>2]=0;p[x+4>>2]=0;p[b>>2]=0;p[H+36>>2]=0;p[H+28>>2]=0;p[H+32>>2]=0;J=x+16|0;I=p[J>>2];b=p[x+12>>2];K=I-b|0;if(K){b=H+28|0;Fb(b,K);I=p[J>>2];L=p[b>>2];b=p[x+12>>2]}th(L,b,I-b|0);n[a+8|0]=1}function xf(a,b,x){var M=0,N=0,O=0,P=0;M=S+ -64|0;S=M;N=lf(a,b);if((N|0)!=(a+4|0)){uf(a,N)}N=0;p[M+16>>2]=0;p[M+8>>2]=0;p[M+12>>2]=0;P=p[x>>2];O=p[x+4>>2]-P|0;if(O){Fb(M+8|0,O);P=p[x>>2];x=p[M+8>>2]}else{x=0}th(x,P,O);P=Gg(M+24|0,b);p[M+44>>2]=0;p[M+36>>2]=0;p[M+40>>2]=0;b=p[M+12>>2];x=p[M+8>>2];O=b-x|0;if(O){Fb(M+36|0,O);x=p[M+8>>2];N=p[M+36>>2];b=p[M+12>>2]}th(N,x,b-x|0);b=vf(a,M+60|0,P);if(!p[b>>2]){wf(M+48|0,a,M+24|0);x=p[M+48>>2];p[x+8>>2]=p[M+60>>2];p[x>>2]=0;p[x+4>>2]=0;p[b>>2]=x;N=p[p[a>>2]>>2];if(N){p[a>>2]=N;x=p[b>>2]}pe(p[a+4>>2],x);a=a+8|0;p[a>>2]=p[a>>2]+1}a=p[M+36>>2];if(a){p[M+40>>2]=a;rh(a)}if(n[M+35|0]<=-1){rh(p[M+24>>2])}a=p[M+8>>2];if(a){p[M+12>>2]=a;rh(a)}S=M- -64|0}function yf(a,b,x){var Q=0,R=0;Q=S-32|0;S=Q;R=a+12|0;a:{if((lf(R,b)|0)!=(a+16|0)){break a}p[Q+16>>2]=b;tf(Q+24|0,R,b,Q+16|0);a=p[Q+24>>2];b=p[x>>2];p[x>>2]=0;x=a+28|0;a=p[x>>2];p[x>>2]=b;if(!a){break a}Xa(a+12|0,p[a+16>>2]);Ya(a,p[a+4>>2]);rh(a)}S=Q+32|0}function zf(a,b){var x=0,S=0,T=0,U=0,V=0,W=0;a:{b:{S=b;T=p[b>>2];if(T){x=p[b+4>>2];if(!x){break b}while(1){S=x;x=p[x>>2];if(x){continue}break}}T=p[S+4>>2];if(T){break b}T=0;V=0;break a}p[T+8>>2]=p[S+8>>2];V=1}U=p[S+8>>2];x=p[U>>2];c:{if((x|0)==(S|0)){p[U>>2]=T;if((a|0)==(S|0)){x=0;a=T;break c}x=p[U+4>>2];break c}p[U+4>>2]=T}d:{e:{f:{W=!q[S+12|0];if((b|0)!=(S|0)){U=p[b+8>>2];p[S+8>>2]=U;p[U+((p[p[b+8>>2]>>2]!=(b|0))<<2)>>2]=S;U=p[b>>2];p[S>>2]=U;p[U+8>>2]=S;U=p[b+4>>2];p[S+4>>2]=U;if(U){p[U+8>>2]=S}n[S+12|0]=q[b+12|0];a=(a|0)==(b|0)?S:a}if(!(W|!a)){if(!V){while(1){b=q[x+12|0];g:{T=p[x+8>>2];if(p[T>>2]!=(x|0)){if(!b){n[x+12|0]=1;n[T+12|0]=0;b=T+4|0;V=p[b>>2];S=p[V>>2];p[b>>2]=S;if(S){p[S+8>>2]=T}p[V+8>>2]=p[T+8>>2];b=p[T+8>>2];p[((T|0)==p[b>>2]?b:b+4|0)>>2]=V;p[V>>2]=T;p[T+8>>2]=V;b=p[x>>2];a=(b|0)==(a|0)?x:a;x=p[b+4>>2]}S=p[x>>2];if(!(q[S+12|0]?0:S)){b=p[x+4>>2];if(q[b+12|0]?0:b){break f}n[x+12|0]=0;x=p[x+8>>2];h:{if((x|0)==(a|0)){x=a;break h}if(q[x+12|0]){break g}}n[x+12|0]=1;return}b=p[x+4>>2];if(b){break f}break e}i:{if(b){b=x;break i}n[x+12|0]=1;n[T+12|0]=0;b=p[x+4>>2];p[T>>2]=b;if(b){p[b+8>>2]=T}p[x+8>>2]=p[T+8>>2];S=p[T+8>>2];j:{if((T|0)==p[S>>2]){p[S>>2]=x;b=p[T>>2];break j}p[S+4>>2]=x}p[x+4>>2]=T;p[T+8>>2]=x;a=(a|0)==(T|0)?x:a}S=p[b>>2];k:{if(!(!S|q[S+12|0])){x=b;break k}x=p[b+4>>2];if(!(q[x+12|0]?0:x)){n[b+12|0]=0;x=p[b+8>>2];if(q[x+12|0]?(x|0)!=(a|0):0){break g}n[x+12|0]=1;return}if(S){if(!q[S+12|0]){x=b;break k}x=p[b+4>>2]}n[x+12|0]=1;n[b+12|0]=0;a=p[x>>2];p[b+4>>2]=a;if(a){p[a+8>>2]=b}p[x+8>>2]=p[b+8>>2];a=p[b+8>>2];p[(p[a>>2]==(b|0)?a:a+4|0)>>2]=x;p[x>>2]=b;p[b+8>>2]=x;S=b}a=x;x=p[x+8>>2];n[a+12|0]=q[x+12|0];n[x+12|0]=1;n[S+12|0]=1;b=p[x>>2];a=p[b+4>>2];p[x>>2]=a;if(a){p[a+8>>2]=x}p[b+8>>2]=p[x+8>>2];a=p[x+8>>2];p[((x|0)==p[a>>2]?a:a+4|0)>>2]=b;p[b+4>>2]=x;p[x+8>>2]=b;return}b=p[x+8>>2];x=p[(p[b>>2]==(x|0)?b+4|0:b)>>2];continue}}n[T+12|0]=1}return}if(q[b+12|0]){break e}S=x;break d}n[S+12|0]=1;n[x+12|0]=0;a=p[S+4>>2];p[x>>2]=a;if(a){p[a+8>>2]=x}p[S+8>>2]=p[x+8>>2];a=p[x+8>>2];p[(p[a>>2]==(x|0)?a:a+4|0)>>2]=S;p[S+4>>2]=x;p[x+8>>2]=S;b=x}x=p[S+8>>2];n[S+12|0]=q[x+12|0];n[x+12|0]=1;n[b+12|0]=1;b=p[x+4>>2];a=p[b>>2];p[x+4>>2]=a;if(a){p[a+8>>2]=x}p[b+8>>2]=p[x+8>>2];a=p[x+8>>2];p[((x|0)==p[a>>2]?a:a+4|0)>>2]=b;p[b>>2]=x;p[x+8>>2]=b}function Af(a,b){var X=0;X=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=v(b,12)+a|0;a=p[b+20>>2];if((p[b+24>>2]-a|0)<1){break a}X=p[a>>2]}return X}function Bf(a,b){var Y=0,Z=0,_=0;Y=p[a+8>>2];a=p[a+12>>2];a:{if((Y|0)==(a|0)){break a}_=a-Y>>2;a=0;while(1){Z=p[(a<<2)+Y>>2];if(p[Z+60>>2]==(b|0)){break a}a=a+1|0;if(a>>>0<_>>>0){continue}break}Z=0}return Z}function Cf(a,b){var $=0,aa=0,ba=0,ca=0,da=0;$=S-16|0;S=$;aa=a+12|0;ba=p[aa>>2];ca=p[a+8>>2];da=p[b>>2];p[b>>2]=0;p[$+8>>2]=da;m[p[p[a>>2]+8>>2]](a,ba-ca>>2,$+8|0);b=p[$+8>>2];p[$+8>>2]=0;if(b){Ta(b)}S=$+16|0;return(p[aa>>2]-p[a+8>>2]>>2)+ -1|0}function Df(a,b,ea){a=a|0;b=b|0;ea=ea|0;var fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;ia=S-16|0;S=ia;p[ia+12>>2]=b;ja=a+8|0;fa=p[a+12>>2];ka=p[a+8>>2];ga=fa-ka>>2;a:{if((ga|0)>(b|0)){break a}ha=b+1|0;if(ha>>>0>ga>>>0){Ef(ja,ha-ga|0);break a}if(ha>>>0>=ga>>>0){break a}ga=ka+(ha<<2)|0;if((ga|0)!=(fa|0)){while(1){fa=fa+ -4|0;ha=p[fa>>2];p[fa>>2]=0;if(ha){Ta(ha)}if((fa|0)!=(ga|0)){continue}break}}p[a+12>>2]=ga}fa=p[p[ea>>2]+56>>2];b:{if((fa|0)>4){break b}fa=v(fa,12)+a|0;ga=fa+24|0;a=p[ga>>2];if((a|0)!=p[fa+28>>2]){p[a>>2]=b;p[ga>>2]=a+4;break b}Ff(fa+20|0,ia+12|0)}b=p[ea>>2];a=p[ia+12>>2];p[b+60>>2]=a;fa=p[ja>>2];p[ea>>2]=0;ea=fa+(a<<2)|0;a=p[ea>>2];p[ea>>2]=b;if(a){Ta(a)}S=ia+16|0}function Ef(a,b){var ea=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,ta=0;la=p[a+8>>2];ma=a+4|0;ea=p[ma>>2];if(la-ea>>2>>>0>=b>>>0){a=b<<2;ra=ma,ta=uh(ea,0,a)+a|0,p[ra>>2]=ta;return}a:{ma=p[a>>2];na=ea-ma>>2;oa=na+b|0;if(oa>>>0<1073741824){na=na<<2;la=la-ma|0;qa=la>>1;la=la>>2>>>0<536870911?qa>>>0>>0?oa:qa:1073741823;if(la){if(la>>>0>=1073741824){break a}pa=Bg(la<<2)}na=na+pa|0;uh(na,0,b<<2);b=(oa<<2)+pa|0;oa=(la<<2)+pa|0;if((ea|0)!=(ma|0)){while(1){ea=ea+ -4|0;la=p[ea>>2];p[ea>>2]=0;na=na+ -4|0;p[na>>2]=la;if((ea|0)!=(ma|0)){continue}break}ma=p[a>>2];ea=p[a+4>>2]}p[a>>2]=na;p[a+8>>2]=oa;p[a+4>>2]=b;if((ea|0)!=(ma|0)){while(1){ea=ea+ -4|0;a=p[ea>>2];p[ea>>2]=0;if(a){Ta(a)}if((ea|0)!=(ma|0)){continue}break}}if(ma){rh(ma)}return}Pg();E()}sa(11760);E()}function Ff(a,b){var ua=0,va=0,wa=0,xa=0,ya=0,za=0;a:{wa=p[a>>2];ya=p[a+4>>2]-wa|0;ua=ya>>2;va=ua+1|0;if(va>>>0<1073741824){za=ua<<2;ua=p[a+8>>2]-wa|0;xa=ua>>1;va=ua>>2>>>0<536870911?xa>>>0>>0?va:xa:1073741823;ua=0;b:{if(!va){break b}if(va>>>0>=1073741824){break a}ua=Bg(va<<2)}xa=za+ua|0;p[xa>>2]=p[b>>2];b=ua+(va<<2)|0;va=xa+4|0;if((ya|0)>=1){th(ua,wa,ya)}p[a>>2]=ua;p[a+8>>2]=b;p[a+4>>2]=va;if(wa){rh(wa)}return}Pg();E()}sa(11760);E()}function Gf(a,b){a=a|0;b=b|0;var sa=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;a:{if((b|0)<0){break a}sa=p[a+12>>2];Aa=p[a+8>>2];if(sa-Aa>>2>>>0<=b>>>0){break a}Aa=Aa+(b<<2)|0;Ba=p[Aa>>2];Ea=p[Ba+60>>2];Ca=p[Ba+56>>2];Ba=Aa+4|0;b:{if((Ba|0)!=(sa|0)){while(1){Fa=p[Ba>>2];p[Ba>>2]=0;Da=p[Aa>>2];p[Aa>>2]=Fa;if(Da){Ta(Da)}Aa=Aa+4|0;Ba=Ba+4|0;if((Ba|0)!=(sa|0)){continue}break}sa=p[a+12>>2];if((Aa|0)==(sa|0)){break b}}while(1){sa=sa+ -4|0;Ba=p[sa>>2];p[sa>>2]=0;if(Ba){Ta(Ba)}if((sa|0)!=(Aa|0)){continue}break}}p[a+12>>2]=Aa;sa=p[a+4>>2];if(sa){Hf(sa,Ea)}c:{if((Ca|0)>4){break c}d:{Aa=v(Ca,12)+a|0;sa=p[Aa+20>>2];Ba=Aa+24|0;Aa=p[Ba>>2];if((sa|0)==(Aa|0)){break d}while(1){if(p[sa>>2]==(b|0)){break d}sa=sa+4|0;if((Aa|0)!=(sa|0)){continue}break}break c}if((sa|0)==(Aa|0)){break c}Ca=sa+4|0;Aa=Aa-Ca|0;Da=Aa>>2;if(Aa){vh(sa,Ca,Aa)}p[Ba>>2]=(Da<<2)+sa}sa=p[a+24>>2];Aa=p[a+20>>2];if((sa|0)!=(Aa|0)){Ba=sa-Aa>>2;sa=0;while(1){Ca=Aa+(sa<<2)|0;Da=p[Ca>>2];if((Da|0)>(b|0)){p[Ca>>2]=Da+ -1}sa=sa+1|0;if(sa>>>0>>0){continue}break}}sa=p[a+36>>2];Aa=p[a+32>>2];if((sa|0)!=(Aa|0)){Ba=sa-Aa>>2;sa=0;while(1){Ca=Aa+(sa<<2)|0;Da=p[Ca>>2];if((Da|0)>(b|0)){p[Ca>>2]=Da+ -1}sa=sa+1|0;if(sa>>>0>>0){continue}break}}sa=p[a+48>>2];Aa=p[a+44>>2];if((sa|0)!=(Aa|0)){Ba=sa-Aa>>2;sa=0;while(1){Ca=Aa+(sa<<2)|0;Da=p[Ca>>2];if((Da|0)>(b|0)){p[Ca>>2]=Da+ -1}sa=sa+1|0;if(sa>>>0>>0){continue}break}}sa=p[a+60>>2];Aa=p[a+56>>2];if((sa|0)!=(Aa|0)){Ba=sa-Aa>>2;sa=0;while(1){Ca=Aa+(sa<<2)|0;Da=p[Ca>>2];if((Da|0)>(b|0)){p[Ca>>2]=Da+ -1}sa=sa+1|0;if(sa>>>0>>0){continue}break}}sa=p[a+72>>2];a=p[a+68>>2];if((sa|0)==(a|0)){break a}Aa=sa-a>>2;sa=0;while(1){Ba=a+(sa<<2)|0;Ca=p[Ba>>2];if((Ca|0)>(b|0)){p[Ba>>2]=Ca+ -1}sa=sa+1|0;if(sa>>>0>>0){continue}break}}}function Hf(a,b){var Ga=0,Ha=0,Ia=0,Ja=0;a:{if((b|0)<0){break a}Ga=p[a+28>>2];Ia=p[a+24>>2];while(1){Ha=Ia;if((Ga|0)==(Ha|0)){break a}Ia=Ha+4|0;if(p[p[Ha>>2]+24>>2]!=(b|0)){continue}break}b:{if((Ga|0)!=(Ia|0)){while(1){b=p[Ia>>2];p[Ia>>2]=0;Ja=p[Ha>>2];p[Ha>>2]=b;if(Ja){Xa(Ja+12|0,p[Ja+16>>2]);Ya(Ja,p[Ja+4>>2]);rh(Ja)}Ha=Ha+4|0;Ia=Ia+4|0;if((Ga|0)!=(Ia|0)){continue}break}Ga=p[a+28>>2];if((Ga|0)==(Ha|0)){break b}}while(1){Ga=Ga+ -4|0;b=p[Ga>>2];p[Ga>>2]=0;if(b){Xa(b+12|0,p[b+16>>2]);Ya(b,p[b+4>>2]);rh(b)}if((Ha|0)!=(Ga|0)){continue}break}}p[a+28>>2]=Ha}}function If(a){a=a|0;rh(Ua(a))}function Jf(a){var b=0;b=q[a+74|0];n[a+74|0]=b+ -1|b;b=p[a>>2];if(b&8){p[a>>2]=b|32;return-1}p[a+4>>2]=0;p[a+8>>2]=0;b=p[a+44>>2];p[a+28>>2]=b;p[a+20>>2]=b;p[a+16>>2]=b+p[a+48>>2];return 0}function Kf(a,Ka,La){var Ma=0,Na=0,Oa=0;Ma=p[La+16>>2];a:{if(!Ma){if(Jf(La)){break a}Ma=p[La+16>>2]}Oa=p[La+20>>2];if(Ma-Oa>>>0>>0){m[p[La+36>>2]](La,a,Ka)|0;return}b:{if(n[La+75|0]<0){break b}Ma=Ka;while(1){Na=Ma;if(!Na){break b}Ma=Na+ -1|0;if(q[Ma+a|0]!=10){continue}break}if(m[p[La+36>>2]](La,a,Na)>>>0>>0){break a}Ka=Ka-Na|0;a=a+Na|0;Oa=p[La+20>>2]}th(Oa,a,Ka);p[La+20>>2]=p[La+20>>2]+Ka}}function Lf(a){a=a|0}function Mf(a){var Ka=0,La=0,Pa=0,Qa=0;Ka=S-208|0;S=Ka;p[Ka+204>>2]=0;uh(Ka+160|0,0,40);p[Ka+200>>2]=p[Ka+204>>2];a:{if((Nf(0,Ka+200|0,Ka+80|0,Ka+160|0)|0)<0){break a}Pa=p[a+76>>2]>=0?1:Pa;La=p[a>>2];if(n[a+74|0]<=0){p[a>>2]=La&-33}Qa=La&32;b:{if(p[a+48>>2]){Nf(a,Ka+200|0,Ka+80|0,Ka+160|0);break b}p[a+48>>2]=80;p[a+16>>2]=Ka+80;p[a+28>>2]=Ka;p[a+20>>2]=Ka;La=p[a+44>>2];p[a+44>>2]=Ka;Nf(a,Ka+200|0,Ka+80|0,Ka+160|0);if(!La){break b}m[p[a+36>>2]](a,0,0)|0;p[a+48>>2]=0;p[a+44>>2]=La;p[a+28>>2]=0;p[a+16>>2]=0;p[a+20>>2]=0}p[a>>2]=Qa|p[a>>2];if(!Pa){break a}}S=Ka+208|0}function Nf(a,Ra,Sa,Ta){var Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0;Va=S-80|0;S=Va;p[Va+76>>2]=12468;hb=Va+55|0;eb=Va+56|0;a:{b:while(1){c:{if((bb|0)<0){break c}if((Ua|0)>(2147483647-bb|0)){p[3351]=61;bb=-1;break c}bb=Ua+bb|0}d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{n:{o:{p:{q:{Za=p[Va+76>>2];Ua=Za;Ya=q[Ua|0];if(Ya){while(1){r:{s:{Wa=Ya&255;t:{if(!Wa){Ya=Ua;break t}if((Wa|0)!=37){break s}Ya=Ua;while(1){if(q[Ua+1|0]!=37){break t}Wa=Ua+2|0;p[Va+76>>2]=Wa;Ya=Ya+1|0;Xa=q[Ua+2|0];Ua=Wa;if((Xa|0)==37){continue}break}}Ua=Ya-Za|0;if(a){Of(a,Za,Ua)}if(Ua){continue b}cb=-1;Ya=1;Wa=Va;_a=!_f(n[p[Va+76>>2]+1|0]);Ua=p[Va+76>>2];if(!(_a|q[Ua+2|0]!=36)){cb=n[Ua+1|0]+ -48|0;fb=1;Ya=3}Ua=Ya+Ua|0;p[Wa+76>>2]=Ua;Ya=0;db=n[Ua|0];Xa=db+ -32|0;u:{if(Xa>>>0>31){Wa=Ua;break u}Wa=Ua;Xa=1<>2]=Wa;Ya=Xa|Ya;db=n[Ua+1|0];Xa=db+ -32|0;if(Xa>>>0>31){break u}Ua=Wa;Xa=1<>2];if(q[Ua+2|0]!=36){break x}p[((n[Ua+1|0]<<2)+Ta|0)+ -192>>2]=10;$a=p[((n[Ua+1|0]<<3)+Sa|0)+ -384>>2];fb=1;Ua=Ua+3|0;break w}if(fb){break q}fb=0;$a=0;if(a){Ua=p[Ra>>2];p[Ra>>2]=Ua+4;$a=p[Ua>>2]}Ua=p[Va+76>>2]+1|0}p[_a+76>>2]=Ua;if(($a|0)>-1){break v}$a=0-$a|0;Ya=Ya|8192;break v}$a=Pf(Va+76|0);if(($a|0)<0){break q}Ua=p[Va+76>>2]}Xa=-1;y:{if(q[Ua|0]!=46){break y}if(q[Ua+1|0]==42){z:{if(!_f(n[Ua+2|0])){break z}Ua=p[Va+76>>2];if(q[Ua+3|0]!=36){break z}p[((n[Ua+2|0]<<2)+Ta|0)+ -192>>2]=10;Xa=p[((n[Ua+2|0]<<3)+Sa|0)+ -384>>2];Ua=Ua+4|0;p[Va+76>>2]=Ua;break y}if(fb){break q}if(a){Ua=p[Ra>>2];p[Ra>>2]=Ua+4;Xa=p[Ua>>2]}else{Xa=0}Ua=p[Va+76>>2]+2|0;p[Va+76>>2]=Ua;break y}p[Va+76>>2]=Ua+1;Xa=Pf(Va+76|0);Ua=p[Va+76>>2]}Wa=0;while(1){gb=Wa;ab=-1;if(n[Ua|0]+ -65>>>0>57){break a}db=Ua+1|0;p[Va+76>>2]=db;Wa=n[Ua|0];Ua=db;Wa=q[(Wa+v(gb,58)|0)+11791|0];if(Wa+ -1>>>0<8){continue}break}if(!Wa){break a}A:{B:{C:{if((Wa|0)==19){if((cb|0)<=-1){break C}break a}if((cb|0)<0){break B}p[(cb<<2)+Ta>>2]=Wa;Ua=(cb<<3)+Sa|0;Wa=p[Ua+4>>2];p[Va+64>>2]=p[Ua>>2];p[Va+68>>2]=Wa}Ua=0;if(!a){continue b}break A}if(!a){break d}Qf(Va- -64|0,Wa,Ra);db=p[Va+76>>2]}_a=Ya&-65537;Ya=Ya&8192?_a:Ya;ab=0;cb=11828;Wa=eb;Ua=n[db+ -1|0];Ua=gb?(Ua&15)==3?Ua&-33:Ua:Ua;db=Ua+ -88|0;if(db>>>0<=32){break r}D:{E:{F:{G:{_a=Ua+ -65|0;if(_a>>>0>6){if((Ua|0)!=83){break e}if(!Xa){break G}Wa=p[Va+64>>2];break E}switch(_a-1|0){case 1:break F;case 0:case 2:break e;default:break p}}Ua=0;Rf(a,32,$a,0,Ya);break D}p[Va+12>>2]=0;p[Va+8>>2]=p[Va+64>>2];p[Va+64>>2]=Va+8;Xa=-1;Wa=Va+8|0}Ua=0;H:{while(1){Za=p[Wa>>2];if(!Za){break H}Za=$f(Va+4|0,Za);_a=(Za|0)<0;if(!(_a|Za>>>0>Xa-Ua>>>0)){Wa=Wa+4|0;Ua=Ua+Za|0;if(Xa>>>0>Ua>>>0){continue}break H}break}ab=-1;if(_a){break a}}Rf(a,32,$a,Ua,Ya);if(!Ua){Ua=0;break D}Xa=0;Wa=p[Va+64>>2];while(1){Za=p[Wa>>2];if(!Za){break D}Za=$f(Va+4|0,Za);Xa=Za+Xa|0;if((Xa|0)>(Ua|0)){break D}Of(a,Va+4|0,Za);Wa=Wa+4|0;if(Xa>>>0>>0){continue}break}}Rf(a,32,$a,Ua,Ya^8192);Ua=($a|0)>(Ua|0)?$a:Ua;continue b}Wa=Ua+1|0;p[Va+76>>2]=Wa;Ya=q[Ua+1|0];Ua=Wa;continue}break}switch(db-1|0){case 21:break i;case 23:break k;case 22:break l;case 11:case 16:break m;case 10:break n;case 26:break o;case 8:case 12:case 13:case 14:break p;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 9:case 15:case 17:case 18:case 19:case 20:case 24:case 25:case 27:case 29:case 30:break e;case 28:break h;default:break j}}ab=bb;if(a){break a}if(!fb){break d}Ua=1;while(1){a=p[(Ua<<2)+Ta>>2];if(a){Qf((Ua<<3)+Sa|0,a,Ra);ab=1;Ua=Ua+1|0;if((Ua|0)!=10){continue}break a}break}ab=1;if(Ua>>>0>=10){break a}while(1){if(p[(Ua<<2)+Ta>>2]){break q}a=Ua>>>0>8;Ua=Ua+1|0;if(!a){continue}break}break a}ab=-1;break a}Ua=m[272](a,u[Va+64>>3],$a,Xa,Ya,Ua)|0;continue}Ua=p[Va+64>>2];Za=Ua?Ua:11838;Ua=eg(Za,Xa);Wa=Ua?Ua:Xa+Za|0;Ya=_a;Xa=Ua?Ua-Za|0:Xa;break e}n[Va+55|0]=p[Va+64>>2];Xa=1;Za=hb;Ya=_a;break e}_a=p[Va+68>>2];Ua=_a;Za=p[Va+64>>2];if((Ua|0)<-1?1:(Ua|0)<=-1?Za>>>0>4294967295?0:1:0){Ua=0-(Ua+(0>>0)|0)|0;Za=0-Za|0;p[Va+64>>2]=Za;p[Va+68>>2]=Ua;ab=1;cb=11828;break g}if(Ya&2048){ab=1;cb=11829;break g}ab=Ya&1;cb=ab?11830:11828;break g}Za=Sf(p[Va+64>>2],p[Va+68>>2],eb);if(!(Ya&8)){break f}Ua=eb-Za|0;Xa=(Xa|0)>(Ua|0)?Xa:Ua+1|0;break f}Xa=Xa>>>0>8?Xa:8;Ya=Ya|8;Ua=120}Za=Tf(p[Va+64>>2],p[Va+68>>2],eb,Ua&32);if(!(Ya&8)|!(p[Va+64>>2]|p[Va+68>>2])){break f}cb=(Ua>>>4)+11828|0;ab=2;break f}Ua=0;Wa=gb&255;if(Wa>>>0>7){continue}I:{switch(Wa-1|0){default:p[p[Va+64>>2]>>2]=bb;continue;case 0:p[p[Va+64>>2]>>2]=bb;continue;case 1:Wa=p[Va+64>>2];p[Wa>>2]=bb;p[Wa+4>>2]=bb>>31;continue;case 2:o[p[Va+64>>2]>>1]=bb;continue;case 3:n[p[Va+64>>2]]=bb;continue;case 5:p[p[Va+64>>2]>>2]=bb;continue;case 4:continue;case 6:break I}}Wa=p[Va+64>>2];p[Wa>>2]=bb;p[Wa+4>>2]=bb>>31;continue}Za=p[Va+64>>2];Ua=p[Va+68>>2];cb=11828}Za=Uf(Za,Ua,eb)}Ya=(Xa|0)>-1?Ya&-65537:Ya;Ua=p[Va+64>>2];_a=p[Va+68>>2];J:{if(!(!!(Ua|_a)|Xa)){Za=eb;Xa=0;break J}Ua=!(Ua|_a)+(eb-Za|0)|0;Xa=(Xa|0)>(Ua|0)?Xa:Ua}}_a=Wa-Za|0;Xa=(Xa|0)<(_a|0)?_a:Xa;Wa=Xa+ab|0;Ua=($a|0)<(Wa|0)?Wa:$a;Rf(a,32,Ua,Wa,Ya);Of(a,cb,ab);Rf(a,48,Ua,Wa,Ya^65536);Rf(a,48,Xa,_a,0);Of(a,Za,_a);Rf(a,32,Ua,Wa,Ya^8192);continue}break}ab=0}S=Va+80|0;return ab}function Of(a,p,Ra){if(!(q[a|0]&32)){Kf(p,Ra,a)}}function Pf(a){var Ra=0,Sa=0,Ta=0;if(_f(n[p[a>>2]])){while(1){Ra=p[a>>2];Ta=n[Ra|0];p[a>>2]=Ra+1;Sa=(v(Sa,10)+Ta|0)+ -48|0;if(_f(n[Ra+1|0])){continue}break}}return Sa}function Qf(a,ib,jb){a:{b:{if(ib>>>0>20){break b}ib=ib+ -9|0;if(ib>>>0>9){break b}c:{switch(ib-1|0){default:ib=p[jb>>2];p[jb>>2]=ib+4;p[a>>2]=p[ib>>2];return;case 0:ib=p[jb>>2];p[jb>>2]=ib+4;ib=p[ib>>2];p[a>>2]=ib;p[a+4>>2]=ib>>31;return;case 1:ib=p[jb>>2];p[jb>>2]=ib+4;p[a>>2]=p[ib>>2];p[a+4>>2]=0;return;case 3:ib=p[jb>>2];p[jb>>2]=ib+4;ib=o[ib>>1];p[a>>2]=ib;p[a+4>>2]=ib>>31;return;case 4:ib=p[jb>>2];p[jb>>2]=ib+4;p[a>>2]=r[ib>>1];p[a+4>>2]=0;return;case 5:ib=p[jb>>2];p[jb>>2]=ib+4;ib=n[ib|0];p[a>>2]=ib;p[a+4>>2]=ib>>31;return;case 6:ib=p[jb>>2];p[jb>>2]=ib+4;p[a>>2]=q[ib|0];p[a+4>>2]=0;return;case 2:case 7:break a;case 8:break c}}m[273](a,jb)}return}ib=p[jb>>2]+7&-8;p[jb>>2]=ib+8;jb=p[ib+4>>2];p[a>>2]=p[ib>>2];p[a+4>>2]=jb}function Rf(a,p,ib,jb,kb){var lb=0,mb=0,nb=0;lb=S-256|0;S=lb;if(!(kb&73728|(ib|0)<=(jb|0))){kb=ib-jb|0;mb=kb>>>0<256;uh(lb,p,mb?kb:256);p=a;nb=lb;if(!mb){ib=ib-jb|0;while(1){Of(a,lb,256);kb=kb+ -256|0;if(kb>>>0>255){continue}break}kb=ib&255}Of(p,nb,kb)}S=lb+256|0}function Sf(a,p,ib){if(a|p){while(1){ib=ib+ -1|0;n[ib|0]=a&7|48;a=(p&7)<<29|a>>>3;p=p>>>3;if(a|p){continue}break}}return ib}function Tf(a,p,ib,jb){if(a|p){while(1){ib=ib+ -1|0;n[ib|0]=q[(a&15)+12320|0]|jb;a=(p&15)<<28|a>>>4;p=p>>>4;if(a|p){continue}break}}return ib}function Uf(a,p,ib){var jb=0,kb=0,ob=0;a:{if((p|0)==1&a>>>0<0|p>>>0<1){jb=a;break a}while(1){jb=Uh(a,p,10,0);kb=U;ob=kb;kb=Sh(jb,kb,10,0);ib=ib+ -1|0;n[ib|0]=a-kb|48;kb=(p|0)==9&a>>>0>4294967295|p>>>0>9;a=jb;p=ob;if(kb){continue}break}}if(jb){while(1){ib=ib+ -1|0;a=(jb>>>0)/10|0;n[ib|0]=jb-v(a,10)|48;p=jb>>>0>9;jb=a;if(p){continue}break}}return ib}function Vf(a,ib,pb,qb,rb,sb){a=a|0;ib=+ib;pb=pb|0;qb=qb|0;rb=rb|0;sb=sb|0;var tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0;xb=S-560|0;S=xb;p[xb+44>>2]=0;h(+ib);tb=e(1)|0;a:{if(Mb=1,Nb=(Pb=e(0)>>>0>4294967295?0:1,Qb=0,Rb=(tb|0)<=-1,Rb?Pb:Qb),Ob=(tb|0)<-1,Ob?Mb:Nb){ib=-ib;h(+ib);tb=e(1)|0;e(0)|0;Hb=1;Ib=12336;break a}if(rb&2048){Hb=1;Ib=12339;break a}Hb=rb&1;Ib=Hb?12342:12337}b:{if((tb&2146435072)==2146435072){zb=Hb+3|0;Rf(a,32,pb,zb,rb&-65537);Of(a,Ib,Hb);qb=sb>>>5&1;Of(a,ib!=ib?qb?12363:12367:qb?12355:12359,3);break b}ib=bg(ib,xb+44|0);ib=ib+ib;if(ib!=0){p[xb+44>>2]=p[xb+44>>2]+ -1}Eb=xb+16|0;Jb=sb|32;if((Jb|0)==97){yb=sb&32;ub=yb?Ib+9|0:Ib;c:{if(qb>>>0>11){break c}tb=12-qb|0;if(!tb){break c}Fb=8;while(1){Fb=Fb*16;tb=tb+ -1|0;if(tb){continue}break}if(q[ub|0]==45){ib=-(Fb+(-ib-Fb));break c}ib=ib+Fb-Fb}wb=p[xb+44>>2];tb=wb>>31;tb=Uf(tb^tb+wb,0,Eb);if((Eb|0)==(tb|0)){n[xb+15|0]=48;tb=xb+15|0}wb=Hb|2;vb=p[xb+44>>2];Bb=tb+ -2|0;n[Bb|0]=sb+15;n[tb+ -1|0]=(vb|0)<0?45:43;Ib=rb&8;vb=xb+16|0;while(1){sb=vb;zb=yb;if(x(ib)<2147483648){tb=~~ib}else{tb=-2147483648}n[vb|0]=zb|q[tb+12320|0];ib=(ib- +(tb|0))*16;vb=sb+1|0;if(!((vb-(xb+16|0)|0)!=1|(ib==0?!((qb|0)>0|Ib):0))){n[sb+1|0]=46;vb=sb+2|0}if(ib!=0){continue}break}sb=a;tb=pb;if(!qb|((vb-xb|0)+ -18|0)>=(qb|0)){yb=((Eb-(xb+16|0)|0)-Bb|0)+vb|0}else{yb=((qb+Eb|0)-Bb|0)+2|0}qb=yb;zb=qb+wb|0;Rf(sb,32,tb,zb,rb);Of(a,ub,wb);Rf(a,48,pb,zb,rb^65536);sb=vb-(xb+16|0)|0;Of(a,xb+16|0,sb);qb=Eb-Bb|0;Rf(a,48,yb-(qb+sb|0)|0,0,0);Of(a,Bb,qb);break b}tb=(qb|0)<0;d:{if(ib==0){ub=p[xb+44>>2];break d}ub=p[xb+44>>2]+ -28|0;p[xb+44>>2]=ub;ib=ib*268435456}yb=tb?6:qb;Bb=(ub|0)<0?xb+48|0:xb+336|0;wb=Bb;while(1){qb=wb;if(ib<4294967296&ib>=0){tb=~~ib>>>0}else{tb=0}p[qb>>2]=tb;wb=wb+4|0;ib=(ib- +(tb>>>0))*1e9;if(ib!=0){continue}break}e:{if((ub|0)<1){tb=wb;vb=Bb;break e}vb=Bb;while(1){Ab=(ub|0)<29?ub:29;tb=wb+ -4|0;f:{if(tb>>>0>>0){break f}qb=Ab;ub=0;while(1){zb=tb;Kb=ub;Db=p[tb>>2];Cb=qb&31;if(32<=(qb&63)>>>0){ub=Db<>>32-Cb;Db=Db<>>0>>0?ub+1|0:ub;ub=Uh(Cb,ub,1e9,0);Db=zb;zb=Sh(ub,U,1e9,0);p[Db>>2]=Cb-zb;tb=tb+ -4|0;if(tb>>>0>=vb>>>0){continue}break}if(!ub){break f}vb=vb+ -4|0;p[vb>>2]=ub}while(1){tb=wb;if(tb>>>0>vb>>>0){wb=tb+ -4|0;if(!p[wb>>2]){continue}}break}ub=p[xb+44>>2]-Ab|0;p[xb+44>>2]=ub;wb=tb;if((ub|0)>0){continue}break}}if((ub|0)<=-1){Gb=((yb+25|0)/9|0)+1|0;Ab=(Jb|0)==102;while(1){qb=(ub|0)<-9?9:0-ub|0;g:{if(vb>>>0>=tb>>>0){vb=p[vb>>2]?vb:vb+4|0;break g}zb=1e9>>>qb;Cb=-1<>2];p[wb>>2]=Db+(ub>>>qb);ub=v(zb,ub&Cb);wb=wb+4|0;if(wb>>>0>>0){continue}break}vb=p[vb>>2]?vb:vb+4|0;if(!ub){break g}p[tb>>2]=ub;tb=tb+4|0}ub=qb+p[xb+44>>2]|0;p[xb+44>>2]=ub;qb=Ab?Bb:vb;tb=tb-qb>>2>(Gb|0)?qb+(Gb<<2)|0:tb;if((ub|0)<0){continue}break}}wb=0;h:{if(vb>>>0>=tb>>>0){break h}wb=v(Bb-vb>>2,9);ub=10;qb=p[vb>>2];if(qb>>>0<10){break h}while(1){wb=wb+1|0;ub=v(ub,10);if(qb>>>0>=ub>>>0){continue}break}}qb=(yb-((Jb|0)==102?0:wb)|0)-((Jb|0)==103&(yb|0)!=0)|0;if((qb|0)<(v(tb-Bb>>2,9)+ -9|0)){ub=qb+9216|0;zb=(ub|0)/9|0;Ab=(Bb+(zb<<2)|0)+ -4092|0;qb=10;ub=ub-v(zb,9)|0;if((ub|0)<=7){while(1){qb=v(qb,10);zb=(ub|0)<7;ub=ub+1|0;if(zb){continue}break}}zb=p[Ab>>2];Cb=(zb>>>0)/(qb>>>0)|0;Gb=Ab+4|0;ub=zb-v(qb,Cb)|0;i:{if(ub?0:(Gb|0)==(tb|0)){break i}Db=qb>>>1;Fb=ub>>>0>>0?.5:(tb|0)==(Gb|0)?(Db|0)==(ub|0)?1:1.5:1.5;ib=Cb&1?9007199254740994:9007199254740992;if(!(!Hb|q[Ib|0]!=45)){Fb=-Fb;ib=-ib}ub=zb-ub|0;p[Ab>>2]=ub;if(ib+Fb==ib){break i}qb=qb+ub|0;p[Ab>>2]=qb;if(qb>>>0>=1e9){while(1){p[Ab>>2]=0;Ab=Ab+ -4|0;if(Ab>>>0>>0){vb=vb+ -4|0;p[vb>>2]=0}qb=p[Ab>>2]+1|0;p[Ab>>2]=qb;if(qb>>>0>999999999){continue}break}}wb=v(Bb-vb>>2,9);ub=10;qb=p[vb>>2];if(qb>>>0<10){break i}while(1){wb=wb+1|0;ub=v(ub,10);if(qb>>>0>=ub>>>0){continue}break}}qb=Ab+4|0;tb=tb>>>0>qb>>>0?qb:tb}j:{while(1){ub=tb;Ab=0;if(tb>>>0<=vb>>>0){break j}tb=ub+ -4|0;if(!p[tb>>2]){continue}break}Ab=1}k:{if((Jb|0)!=103){Cb=rb&8;break k}qb=yb?yb:1;tb=(qb|0)>(wb|0)&(wb|0)>-5;yb=(tb?wb^-1:-1)+qb|0;sb=(tb?-1:-2)+sb|0;Cb=rb&8;if(Cb){break k}tb=9;l:{if(!Ab){break l}zb=p[ub+ -4>>2];if(!zb){break l}qb=10;tb=0;if((zb>>>0)%10){break l}while(1){tb=tb+1|0;qb=v(qb,10);if(!((zb>>>0)%(qb>>>0))){continue}break}}qb=v(ub-Bb>>2,9)+ -9|0;if((sb|32)==102){Cb=0;qb=qb-tb|0;qb=(qb|0)>0?qb:0;yb=(yb|0)<(qb|0)?yb:qb;break k}Cb=0;qb=(qb+wb|0)-tb|0;qb=(qb|0)>0?qb:0;yb=(yb|0)<(qb|0)?yb:qb}Jb=yb|Cb;Db=(Jb|0)!=0;qb=a;Kb=pb;Lb=sb|32;tb=(wb|0)>0?wb:0;m:{if((Lb|0)==102){break m}tb=wb>>31;tb=Uf(tb+wb^tb,0,Eb);if((Eb-tb|0)<=1){while(1){tb=tb+ -1|0;n[tb|0]=48;if((Eb-tb|0)<2){continue}break}}Gb=tb+ -2|0;n[Gb|0]=sb;n[tb+ -1|0]=(wb|0)<0?45:43;tb=Eb-Gb|0}zb=(tb+(Db+(yb+Hb|0)|0)|0)+1|0;Rf(qb,32,Kb,zb,rb);Of(a,Ib,Hb);Rf(a,48,pb,zb,rb^65536);n:{o:{p:{if((Lb|0)==102){qb=xb+16|8;sb=xb+16|9;wb=vb>>>0>Bb>>>0?Bb:vb;vb=wb;while(1){tb=Uf(p[vb>>2],0,sb);q:{if((vb|0)!=(wb|0)){if(tb>>>0<=xb+16>>>0){break q}while(1){tb=tb+ -1|0;n[tb|0]=48;if(tb>>>0>xb+16>>>0){continue}break}break q}if((sb|0)!=(tb|0)){break q}n[xb+24|0]=48;tb=qb}Of(a,tb,sb-tb|0);vb=vb+4|0;if(vb>>>0<=Bb>>>0){continue}break}if(Jb){Of(a,12371,1)}if((yb|0)<1|vb>>>0>=ub>>>0){break p}while(1){tb=Uf(p[vb>>2],0,sb);if(tb>>>0>xb+16>>>0){while(1){tb=tb+ -1|0;n[tb|0]=48;if(tb>>>0>xb+16>>>0){continue}break}}Of(a,tb,(yb|0)<9?yb:9);tb=yb+ -9|0;vb=vb+4|0;if(vb>>>0>=ub>>>0){break o}qb=(yb|0)>9;yb=tb;if(qb){continue}break}break o}r:{if((yb|0)<0){break r}Bb=Ab?ub:vb+4|0;qb=xb+16|8;sb=xb+16|9;wb=vb;while(1){tb=Uf(p[wb>>2],0,sb);if((sb|0)==(tb|0)){n[xb+24|0]=48;tb=qb}s:{if((vb|0)!=(wb|0)){if(tb>>>0<=xb+16>>>0){break s}while(1){tb=tb+ -1|0;n[tb|0]=48;if(tb>>>0>xb+16>>>0){continue}break}break s}Of(a,tb,1);tb=tb+1|0;if((yb|0)<1?!Cb:0){break s}Of(a,12371,1)}ub=tb;tb=sb-tb|0;Of(a,ub,(yb|0)>(tb|0)?tb:yb);yb=yb-tb|0;wb=wb+4|0;if(wb>>>0>=Bb>>>0){break r}if((yb|0)>-1){continue}break}}Rf(a,48,yb+18|0,18,0);Of(a,Gb,Eb-Gb|0);break n}tb=yb}Rf(a,48,tb+9|0,9,0)}}Rf(a,32,pb,zb,rb^8192);S=xb+560|0;return((zb|0)<(pb|0)?pb:zb)|0}function Wf(a,ib){a=a|0;ib=ib|0;var pb=0,qb=0,rb=0;pb=ib;ib=p[ib>>2]+15&-16;p[pb>>2]=ib+16;qb=a,rb=ig(p[ib>>2],p[ib+4>>2],p[ib+8>>2],p[ib+12>>2]),u[qb>>3]=rb}function Xf(a,ib,sb){a=a|0;ib=ib|0;sb=sb|0;var Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0;Sb=S-32|0;S=Sb;Tb=p[a+28>>2];p[Sb+16>>2]=Tb;Ub=p[a+20>>2];p[Sb+28>>2]=sb;p[Sb+24>>2]=ib;ib=Ub-Tb|0;p[Sb+20>>2]=ib;Ub=ib+sb|0;Wb=2;ib=Sb+16|0;while(1){a:{b:{if(fg(J(p[a+60>>2],ib|0,Wb|0,Sb+12|0)|0)){p[Sb+12>>2]=-1;Tb=-1;break b}Tb=p[Sb+12>>2]}c:{if((Tb|0)==(Ub|0)){ib=p[a+44>>2];p[a+28>>2]=ib;p[a+20>>2]=ib;p[a+16>>2]=ib+p[a+48>>2];a=sb;break c}if((Tb|0)>-1){break a}p[a+28>>2]=0;p[a+16>>2]=0;p[a+20>>2]=0;p[a>>2]=p[a>>2]|32;a=0;if((Wb|0)==2){break c}a=sb-p[ib+4>>2]|0}S=Sb+32|0;return a|0}Vb=p[ib+4>>2];Xb=Tb>>>0>Vb>>>0;ib=Xb?ib+8|0:ib;Vb=Tb-(Xb?Vb:0)|0;p[ib>>2]=Vb+p[ib>>2];p[ib+4>>2]=p[ib+4>>2]-Vb;Ub=Ub-Tb|0;Wb=Wb-Xb|0;continue}}function Yf(a,ib,sb,Yb){a=a|0;ib=ib|0;sb=sb|0;Yb=Yb|0;var Zb=0;Zb=S-16|0;S=Zb;a:{if(!fg(R(p[a+60>>2],ib|0,sb|0,Yb&255,Zb+8|0)|0)){ib=p[Zb+12>>2];a=p[Zb+8>>2];break a}p[Zb+8>>2]=-1;p[Zb+12>>2]=-1;ib=-1;a=-1}S=Zb+16|0;U=ib;return a|0}function Zf(a){a=a|0;return K(p[a+60>>2])|0}function _f(a){return a+ -48>>>0<10}function $f(a,p){if(!a){return 0}return ag(a,p)}function ag(a,ib){a:{if(a){if(ib>>>0<=127){break a}b:{if(!p[p[3335]>>2]){if((ib&-128)==57216){break a}break b}if(ib>>>0<=2047){n[a+1|0]=ib&63|128;n[a|0]=ib>>>6|192;return 2}if(!((ib&-8192)!=57344?ib>>>0>=55296:0)){n[a+2|0]=ib&63|128;n[a|0]=ib>>>12|224;n[a+1|0]=ib>>>6&63|128;return 3}if(ib+ -65536>>>0<=1048575){n[a+3|0]=ib&63|128;n[a|0]=ib>>>18|240;n[a+2|0]=ib>>>6&63|128;n[a+1|0]=ib>>>12&63|128;return 4}}p[3351]=25;a=-1}else{a=1}return a}n[a|0]=ib;return 1}function bg(a,ib){var sb=0,Yb=0,_b=0;h(+a);sb=e(1)|0;Yb=e(0)|0;_b=sb;sb=sb>>>20&2047;if((sb|0)!=2047){if(!sb){sb=ib;if(a==0){ib=0}else{a=bg(a*0x10000000000000000,ib);ib=p[ib>>2]+ -64|0}p[sb>>2]=ib;return a}p[ib>>2]=sb+ -1022;f(0,Yb|0);f(1,_b&-2146435073|1071644672);a=+g()}return a}function cg(a){var p=0,ib=0,$b=0,ac=0,bc=0,cc=0;while(1){p=a;a=p+1|0;ib=n[p|0];if((ib|0)==32|ib+ -9>>>0<5){continue}break}ib=n[p|0];ac=ib+ -43|0;a:{if(ac>>>0>2){break a}b:{switch(ac-1|0){case 1:bc=1;break;case 0:break a;default:break b}}ib=n[a|0];p=a;cc=bc}if(_f(ib)){while(1){$b=(v($b,10)-n[p|0]|0)+48|0;a=n[p+1|0];p=p+1|0;if(_f(a)){continue}break}}return cc?$b:0-$b|0}function dg(a,dc,ec){var fc=0,gc=0,hc=0;a:{if(!ec){break a}while(1){fc=q[a|0];gc=q[dc|0];if((fc|0)==(gc|0)){dc=dc+1|0;a=a+1|0;ec=ec+ -1|0;if(ec){continue}break a}break}hc=fc-gc|0}return hc}function eg(a,dc){var ec=0,ic=0,jc=0;ec=(dc|0)!=0;a:{b:{c:{d:{if(!dc|!(a&3)){break d}while(1){if(!q[a|0]){break c}a=a+1|0;dc=dc+ -1|0;ec=(dc|0)!=0;if(!dc){break d}if(a&3){continue}break}}if(!ec){break b}}if(!q[a|0]){break a}e:{if(dc>>>0>=4){ec=dc+ -4|0;ic=ec&-4;ec=ec-ic|0;ic=(a+ic|0)+4|0;while(1){jc=p[a>>2];if((jc^-1)&jc+ -16843009&-2139062144){break e}a=a+4|0;dc=dc+ -4|0;if(dc>>>0>3){continue}break}dc=ec;a=ic}if(!dc){break b}}while(1){if(!q[a|0]){break a}a=a+1|0;dc=dc+ -1|0;if(dc){continue}break}}return 0}return a}function fg(a){if(!a){return 0}p[3351]=a;return-1}function gg(a,dc,kc,lc,mc,nc){var oc=0,pc=0,qc=0,rc=0;a:{if(nc&64){lc=dc;mc=nc+ -64|0;dc=mc&31;if(32<=(mc&63)>>>0){mc=lc<>>32-dc|kc<>>0){pc=oc<>>32-lc|mc<>>0){nc=0;lc=lc>>>mc}else{nc=lc>>>mc;lc=((1<>>mc}lc=rc|lc;mc=nc|pc;nc=dc;dc=qc&31;if(32<=(qc&63)>>>0){pc=nc<>>32-dc|kc<>2]=dc;p[a+4>>2]=kc;p[a+8>>2]=lc;p[a+12>>2]=mc}function hg(a,dc,kc,lc,mc,nc){var sc=0,tc=0,uc=0,vc=0;a:{b:{if(nc&64){kc=nc+ -64|0;dc=kc&31;if(32<=(kc&63)>>>0){kc=0;dc=mc>>>dc}else{kc=mc>>>dc;dc=((1<>>dc}lc=0;mc=0;break b}if(!nc){break a}tc=mc;uc=lc;vc=64-nc|0;sc=vc&31;if(32<=(vc&63)>>>0){tc=uc<>>32-sc|tc<>>0){sc=0;dc=kc>>>dc}else{sc=kc>>>dc;dc=((1<>>dc}dc=vc|dc;kc=sc|tc;sc=lc;lc=nc&31;if(32<=(nc&63)>>>0){tc=0;lc=mc>>>lc}else{tc=mc>>>lc;lc=((1<>>lc}mc=tc}}p[a>>2]=dc;p[a+4>>2]=kc;p[a+8>>2]=lc;p[a+12>>2]=mc}function ig(a,dc,kc,lc){var mc=0,nc=0,wc=0,xc=0,yc=0,zc=0,Ac=0;wc=S-32|0;S=wc;mc=lc&2147483647;yc=mc;mc=mc+ -1006698496|0;xc=kc;nc=kc;if(kc>>>0<0){mc=mc+1|0}zc=nc;nc=mc;mc=yc+ -1140785152|0;Ac=xc;if(xc>>>0<0){mc=mc+1|0}a:{if((mc|0)==(nc|0)&zc>>>0>>0|nc>>>0>>0){mc=lc<<4|kc>>>28;kc=kc<<4|dc>>>28;dc=dc&268435455;xc=dc;if((dc|0)==134217728&a>>>0>=1|dc>>>0>134217728){mc=mc+1073741824|0;a=kc+1|0;if(a>>>0<1){mc=mc+1|0}nc=a;break a}nc=kc;mc=mc-((kc>>>0<0)+ -1073741824|0)|0;if(a|xc^134217728){break a}a=nc+(nc&1)|0;if(a>>>0>>0){mc=mc+1|0}nc=a;break a}if(!(!xc&(yc|0)==2147418112?!(a|dc):(yc|0)==2147418112&xc>>>0<0|yc>>>0<2147418112)){mc=lc<<4|kc>>>28;nc=kc<<4|dc>>>28;mc=mc&524287|2146959360;break a}nc=0;mc=2146435072;if((yc|0)==1140785151&xc>>>0>4294967295|yc>>>0>1140785151){break a}mc=0;xc=yc>>>16;if(xc>>>0<15249){break a}mc=lc&65535|65536;hg(wc,a,dc,kc,mc,15361-xc|0);gg(wc+16|0,a,dc,kc,mc,xc+ -15233|0);kc=p[wc+4>>2];a=p[wc+8>>2];mc=p[wc+12>>2]<<4|a>>>28;nc=a<<4|kc>>>28;a=kc&268435455;kc=a;dc=p[wc>>2]|((p[wc+16>>2]|p[wc+24>>2])!=0|(p[wc+20>>2]|p[wc+28>>2])!=0);if((a|0)==134217728&dc>>>0>=1|a>>>0>134217728){a=nc+1|0;if(a>>>0<1){mc=mc+1|0}nc=a;break a}if(dc|kc^134217728){break a}a=nc+(nc&1)|0;if(a>>>0>>0){mc=mc+1|0}nc=a}S=wc+32|0;f(0,nc|0);f(1,lc&-2147483648|mc);return+g()}function jg(a){var dc=0,kc=0,lc=0;a:{b:{dc=a;if(!(dc&3)){break b}if(!q[a|0]){break a}while(1){dc=dc+1|0;if(!(dc&3)){break b}if(q[dc|0]){continue}break}break a}while(1){kc=dc;dc=dc+4|0;lc=p[kc>>2];if(!((lc^-1)&lc+ -16843009&-2139062144)){continue}break}if(!(lc&255)){dc=kc;break a}while(1){lc=q[kc+1|0];dc=kc+1|0;kc=dc;if(lc){continue}break}}return dc-a|0}function kg(a,Bc,Cc){if(Cc){th(a,Bc,Cc)}}function lg(a,Bc){return mg(a,Bc)}function mg(a,Bc){var Cc=0;Cc=S-16|0;S=Cc;S=Cc+16|0;return s[a>>2]>2]?Bc:a}function ng(a,Bc){var Dc=0,Ec=0;Dc=q[a|0];Ec=q[Bc|0];a:{if(!Dc|(Dc|0)!=(Ec|0)){break a}while(1){Ec=q[Bc+1|0];Dc=q[a+1|0];if(!Dc){break a}Bc=Bc+1|0;a=a+1|0;if((Dc|0)==(Ec|0)){continue}break}}return Dc-Ec|0}function og(){var a=0,Bc=0,Fc=0;a=S-16|0;S=a;a:{if(L(a+12|0,a+8|0)){break a}Bc=qh((p[a+12>>2]<<2)+4|0);p[3368]=Bc;if(!Bc){break a}b:{Bc=qh(p[a+8>>2]);if(Bc){Fc=p[3368];if(Fc){break b}}p[3368]=0;break a}p[(p[a+12>>2]<<2)+Fc>>2]=0;if(!M(p[3368],Bc|0)){break a}p[3368]=0}S=a+16|0}function pg(Gc){if(rg(Gc)){return p[Gc+4>>2]}return q[Gc+11|0]}function qg(Gc){if(rg(Gc)){Gc=(p[Gc+8>>2]&2147483647)+ -1|0}else{Gc=10}return Gc}function rg(Gc){return n[Gc+11|0]<0}function sg(Gc){if(rg(Gc)){return p[Gc>>2]}return Gc}function tg(Gc,Hc){n[Gc|0]=q[Hc|0]}function ug(Gc,Hc){p[Gc+4>>2]=Hc}function vg(Gc,Hc){n[Gc+11|0]=Hc}function wg(Gc){var Hc=0;if(Gc>>>0>=11){Hc=Gc+16&-16;Gc=Hc+ -1|0;Gc=(Gc|0)==11?Hc:Gc}else{Gc=10}return Gc}function xg(Gc){if(4294967295>>0){sa(12380);E()}return Bg(Gc)}function yg(Gc,Ic){p[Gc>>2]=Ic}function zg(Gc,Ic){p[Gc+8>>2]=Ic|-2147483648}function Ag(Gc,Ic){if(rg(Gc)){ug(Gc,Ic);return}vg(Gc,Ic)}function Bg(Gc){var Ic=0,Jc=0;Gc=Gc?Gc:1;while(1){a:{Ic=qh(Gc);if(Ic){break a}Jc=p[3369];if(!Jc){break a}m[Jc]();continue}break}return Ic}function Cg(Gc,Kc){var Lc=0,Mc=0,Nc=0,Oc=0;Lc=jg(Kc);Mc=Bg(Lc+13|0);p[Mc+8>>2]=0;p[Mc+4>>2]=Lc;p[Mc>>2]=Lc;Nc=Gc,Oc=th(Mc+12|0,Kc,Lc+1|0),p[Nc>>2]=Oc}function Dg(Gc){var Kc=0,Pc=0,Qc=0;Kc=S-16|0;S=Kc;n[Kc+15|0]=10;Pc=p[Gc+16>>2];a:{if(!Pc){if(Jf(Gc)){break a}Pc=p[Gc+16>>2]}Qc=p[Gc+20>>2];if(!(n[Gc+75|0]==10|Qc>>>0>=Pc>>>0)){p[Gc+20>>2]=Qc+1;n[Qc|0]=10;break a}if((m[p[Gc+36>>2]](Gc,Kc+15|0,1)|0)!=1){break a}}S=Kc+16|0}function Eg(){sa(12448);E()}function Fg(){N();E()}function Gg(Gc,Rc){var Sc=0,Tc=0,Uc=0;Tc=S-16|0;S=Tc;fa(Gc);Sc=Gc;a:{if(!rg(Rc)){p[Sc+8>>2]=p[Rc+8>>2];Uc=p[Rc+4>>2];p[Sc>>2]=p[Rc>>2];p[Sc+4>>2]=Uc;break a}Hg(Gc,p[Rc>>2],p[Rc+4>>2])}S=Tc+16|0;return Gc}function Hg(Gc,Rc,Vc){var Wc=0,Xc=0,Yc=0;Wc=S-16|0;S=Wc;if(4294967279>=Vc>>>0){a:{if(Vc>>>0<=10){vg(Gc,Vc);Xc=Gc;break a}Yc=wg(Vc)+1|0;Xc=xg(Yc);yg(Gc,Xc);zg(Gc,Yc);ug(Gc,Vc)}kg(Xc,Rc,Vc);n[Wc+15|0]=0;tg(Vc+Xc|0,Wc+15|0);S=Wc+16|0;return}Eg();E()}function Ig(Gc,Rc,Vc){var Zc=0,_c=0,$c=0,ad=0;_c=S-16|0;S=_c;Zc=qg(Gc);a:{if(Zc>>>0>=Vc>>>0){$c=sg(Gc);ad=$c;Zc=Vc;if(Vc){vh(ad,Rc,Zc)}n[_c+15|0]=0;tg(Vc+$c|0,_c+15|0);Ag(Gc,Vc);break a}$c=Gc;Gc=pg(Gc);Jg($c,Zc,Vc-Zc|0,Gc,Gc,Vc,Rc)}S=_c+16|0}function Jg(Gc,Rc,Vc,bd,cd,dd,ed){var fd=0,gd=0,hd=0;fd=S-16|0;S=fd;if((Rc^-1)+ -17>>>0>=Vc>>>0){gd=sg(Gc);a:{if(2147483623>Rc>>>0){p[fd+8>>2]=Rc<<1;p[fd+12>>2]=Rc+Vc;Vc=wg(p[lg(fd+12|0,fd+8|0)>>2]);break a}Vc=-18}hd=Vc+1|0;Vc=xg(hd);if(dd){kg(Vc,ed,dd)}bd=bd-cd|0;ed=bd;if(bd){kg(Vc+dd|0,cd+gd|0,ed)}if((Rc|0)!=10){rh(gd)}yg(Gc,Vc);zg(Gc,hd);Rc=Gc;Gc=bd+dd|0;ug(Rc,Gc);n[fd+7|0]=0;tg(Gc+Vc|0,fd+7|0);S=fd+16|0;return}Eg();E()}function Kg(Gc,Rc){var Vc=0;Vc=pg(Gc);if(Vc>>>0>>0){Lg(Gc,Rc-Vc|0);return}Mg(Gc,Rc)}function Lg(Gc,Rc){var bd=0,cd=0,dd=0,ed=0;dd=S-16|0;S=dd;if(Rc){cd=qg(Gc);bd=pg(Gc);ed=bd+Rc|0;if(cd-bd>>>0>>0){Ng(Gc,cd,ed-cd|0,bd,bd)}cd=bd;bd=sg(Gc);cd=cd+bd|0;if(Rc){uh(cd,0,Rc)}Ag(Gc,ed);n[dd+15|0]=0;tg(bd+ed|0,dd+15|0)}S=dd+16|0}function Mg(Gc,Rc){var id=0,jd=0;id=S-16|0;S=id;a:{if(rg(Gc)){jd=p[Gc>>2];n[id+15|0]=0;tg(Rc+jd|0,id+15|0);ug(Gc,Rc);break a}n[id+14|0]=0;tg(Gc+Rc|0,id+14|0);vg(Gc,Rc)}S=id+16|0}function Ng(Gc,Rc,kd,ld,md){var nd=0,od=0,pd=0;nd=S-16|0;S=nd;if(-17-Rc>>>0>=kd>>>0){od=sg(Gc);a:{if(2147483623>Rc>>>0){p[nd+8>>2]=Rc<<1;p[nd+12>>2]=Rc+kd;kd=wg(p[lg(nd+12|0,nd+8|0)>>2]);break a}kd=-18}pd=kd+1|0;kd=xg(pd);if(md){kg(kd,od,md)}ld=ld-md|0;if(ld){kg(kd+md|0,md+od|0,ld)}if((Rc|0)!=10){rh(od)}yg(Gc,kd);zg(Gc,pd);S=nd+16|0;return}Eg();E()}function Og(Gc){if(pg(Gc)>>>0<=0){Fg();E()}return sg(Gc)}function Pg(){sa(12461);E()}function Qg(){Fg();E()}function Rg(Gc){var Rc=0;if(p[Gc+76>>2]<0){a:{if(n[Gc+75|0]==10){break a}Rc=p[Gc+20>>2];if(Rc>>>0>=s[Gc+16>>2]){break a}p[Gc+20>>2]=Rc+1;n[Rc|0]=10;return}Dg(Gc);return}b:{c:{if(n[Gc+75|0]==10){break c}Rc=p[Gc+20>>2];if(Rc>>>0>=s[Gc+16>>2]){break c}p[Gc+20>>2]=Rc+1;n[Rc|0]=10;break b}Dg(Gc)}}function Sg(){var Gc=0;Gc=S-16|0;S=Gc;p[Gc+12>>2]=0;Gc=p[3094];Mf(Gc);Rg(Gc);N();E()}function Tg(){Sg();E()}function Ug(kd){kd=kd|0;return 12498}function Vg(kd){kd=kd|0;p[kd>>2]=12568;Wg(kd+4|0);return kd|0}function Wg(kd){var ld=0,md=0;ld=p[kd>>2]+ -12|0;md=ld+8|0;kd=p[md>>2]+ -1|0;p[md>>2]=kd;a:{if((kd|0)>-1){break a}rh(ld)}}function Xg(kd){kd=kd|0;rh(Vg(kd))}function Yg(kd){kd=kd|0;return p[kd+4>>2]}function Zg(kd){kd=kd|0;Vg(kd);rh(kd)}function _g(kd,qd,rd){if(!rd){return(kd|0)==(qd|0)}return!ng(p[kd+4>>2],p[qd+4>>2])}function $g(kd,qd,rd){kd=kd|0;qd=qd|0;rd=rd|0;var sd=0,td=0;sd=S+ -64|0;S=sd;td=1;a:{if(_g(kd,qd,0)){break a}td=0;if(!qd){break a}qd=ah(qd);td=0;if(!qd){break a}p[sd+20>>2]=-1;p[sd+16>>2]=kd;p[sd+12>>2]=0;p[sd+8>>2]=qd;uh(sd+24|0,0,39);p[sd+56>>2]=1;m[p[p[qd>>2]+28>>2]](qd,sd+8|0,p[rd>>2],1);td=0;if(p[sd+32>>2]!=1){break a}p[rd>>2]=p[sd+24>>2];td=1}S=sd- -64|0;return td|0}function ah(kd){var qd=0,rd=0,ud=0,vd=0;qd=S+ -64|0;S=qd;rd=p[kd>>2];vd=p[rd+ -8>>2];rd=p[rd+ -4>>2];p[qd+20>>2]=0;p[qd+16>>2]=12720;p[qd+12>>2]=kd;p[qd+8>>2]=12768;uh(qd+24|0,0,39);kd=kd+vd|0;a:{if(_g(rd,12768,0)){p[qd+56>>2]=1;m[p[p[rd>>2]+20>>2]](rd,qd+8|0,kd,kd,1,0);ud=p[qd+32>>2]==1?kd:0;break a}m[p[p[rd>>2]+24>>2]](rd,qd+8|0,kd,1,0);kd=p[qd+44>>2];if(kd>>>0>1){break a}if(kd-1){ud=p[qd+48>>2]==1?p[qd+36>>2]==1?p[qd+40>>2]==1?p[qd+28>>2]:0:0:0;break a}if(p[qd+32>>2]!=1){if(p[qd+48>>2]|p[qd+36>>2]!=1|p[qd+40>>2]!=1){break a}}ud=p[qd+24>>2]}S=qd- -64|0;return ud}function bh(kd,wd,xd){var yd=0;yd=p[kd+16>>2];if(!yd){p[kd+36>>2]=1;p[kd+24>>2]=xd;p[kd+16>>2]=wd;return}a:{if((wd|0)==(yd|0)){if(p[kd+24>>2]!=2){break a}p[kd+24>>2]=xd;return}n[kd+54|0]=1;p[kd+24>>2]=2;p[kd+36>>2]=p[kd+36>>2]+1}}function ch(kd,wd,xd,zd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;if(_g(kd,p[wd+8>>2],0)){bh(wd,xd,zd)}}function dh(kd,wd,xd,zd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;if(_g(kd,p[wd+8>>2],0)){bh(wd,xd,zd);return}kd=p[kd+8>>2];m[p[p[kd>>2]+28>>2]](kd,wd,xd,zd)}function eh(kd,wd,xd,zd){var Ad=0,Bd=0,Cd=0,Dd=0;Bd=p[kd+4>>2];kd=p[kd>>2];Cd=kd;Dd=wd;Ad=0;a:{if(!xd){break a}wd=Bd>>8;Ad=wd;if(!(Bd&1)){break a}Ad=p[wd+p[xd>>2]>>2]}m[p[p[kd>>2]+28>>2]](Cd,Dd,Ad+xd|0,Bd&2?zd:2)}function fh(kd,wd,xd,zd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;var Ed=0,Fd=0;if(_g(kd,p[wd+8>>2],0)){bh(wd,xd,zd);return}Ed=p[kd+12>>2];Fd=kd+16|0;eh(Fd,wd,xd,zd);a:{if((Ed|0)<2){break a}Ed=(Ed<<3)+Fd|0;kd=kd+24|0;while(1){eh(kd,wd,xd,zd);if(q[wd+54|0]){break a}kd=kd+8|0;if(kd>>>0>>0){continue}break}}}function gh(kd,wd,xd,zd){n[kd+53|0]=1;a:{if(p[kd+4>>2]!=(xd|0)){break a}n[kd+52|0]=1;xd=p[kd+16>>2];if(!xd){p[kd+36>>2]=1;p[kd+24>>2]=zd;p[kd+16>>2]=wd;if((zd|0)!=1|p[kd+48>>2]!=1){break a}n[kd+54|0]=1;return}if((wd|0)==(xd|0)){xd=p[kd+24>>2];if((xd|0)==2){p[kd+24>>2]=zd;xd=zd}if(p[kd+48>>2]!=1|(xd|0)!=1){break a}n[kd+54|0]=1;return}n[kd+54|0]=1;p[kd+36>>2]=p[kd+36>>2]+1}}function hh(kd,wd,xd){if(!(p[kd+28>>2]==1|p[kd+4>>2]!=(wd|0))){p[kd+28>>2]=xd}}function ih(kd,wd,xd,zd,Gd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;Gd=Gd|0;var Hd=0,Id=0,Jd=0,Kd=0,Ld=0;if(_g(kd,p[wd+8>>2],Gd)){hh(wd,xd,zd);return}a:{if(_g(kd,p[wd>>2],Gd)){if(!(p[wd+20>>2]!=(xd|0)?p[wd+16>>2]!=(xd|0):0)){if((zd|0)!=1){break a}p[wd+32>>2]=1;return}p[wd+32>>2]=zd;if(p[wd+44>>2]!=4){Hd=kd+16|0;Kd=Hd+(p[kd+12>>2]<<3)|0;Ld=wd;b:{c:{while(1){d:{if(Hd>>>0>=Kd>>>0){break d}o[wd+52>>1]=0;jh(Hd,wd,xd,xd,1,Gd);if(q[wd+54|0]){break d}e:{if(!q[wd+53|0]){break e}if(q[wd+52|0]){zd=1;if(p[wd+24>>2]==1){break c}Jd=1;Id=1;if(q[kd+8|0]&2){break e}break c}Jd=1;zd=Id;if(!(n[kd+8|0]&1)){break c}}Hd=Hd+8|0;continue}break}zd=Id;kd=4;if(!Jd){break b}}kd=3}p[Ld+44>>2]=kd;if(zd&1){break a}}p[wd+20>>2]=xd;p[wd+40>>2]=p[wd+40>>2]+1;if(p[wd+36>>2]!=1|p[wd+24>>2]!=2){break a}n[wd+54|0]=1;return}Id=p[kd+12>>2];Hd=kd+16|0;kh(Hd,wd,xd,zd,Gd);if((Id|0)<2){break a}Id=Hd+(Id<<3)|0;Hd=kd+24|0;kd=p[kd+8>>2];if(!(p[wd+36>>2]!=1?!(kd&2):0)){while(1){if(q[wd+54|0]){break a}kh(Hd,wd,xd,zd,Gd);Hd=Hd+8|0;if(Hd>>>0>>0){continue}break}break a}if(!(kd&1)){while(1){if(q[wd+54|0]|p[wd+36>>2]==1){break a}kh(Hd,wd,xd,zd,Gd);Hd=Hd+8|0;if(Hd>>>0>>0){continue}break a}}while(1){if(q[wd+54|0]|(p[wd+24>>2]==1?p[wd+36>>2]==1:0)){break a}kh(Hd,wd,xd,zd,Gd);Hd=Hd+8|0;if(Hd>>>0>>0){continue}break}}}function jh(kd,wd,xd,zd,Gd,Md){var Nd=0,Od=0,Pd=0;Nd=p[kd+4>>2];Od=Nd>>8;kd=p[kd>>2];Pd=kd;if(Nd&1){Od=p[p[zd>>2]+Od>>2]}m[p[p[kd>>2]+20>>2]](Pd,wd,xd,zd+Od|0,Nd&2?Gd:2,Md)}function kh(kd,wd,xd,zd,Gd){var Md=0,Qd=0,Rd=0;Md=p[kd+4>>2];Qd=Md>>8;kd=p[kd>>2];Rd=kd;if(Md&1){Qd=p[p[xd>>2]+Qd>>2]}m[p[p[kd>>2]+24>>2]](Rd,wd,xd+Qd|0,Md&2?zd:2,Gd)}function lh(kd,wd,xd,zd,Gd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;Gd=Gd|0;if(_g(kd,p[wd+8>>2],Gd)){hh(wd,xd,zd);return}a:{if(_g(kd,p[wd>>2],Gd)){if(!(p[wd+20>>2]!=(xd|0)?p[wd+16>>2]!=(xd|0):0)){if((zd|0)!=1){break a}p[wd+32>>2]=1;return}p[wd+32>>2]=zd;b:{if(p[wd+44>>2]==4){break b}o[wd+52>>1]=0;kd=p[kd+8>>2];m[p[p[kd>>2]+20>>2]](kd,wd,xd,xd,1,Gd);if(q[wd+53|0]){p[wd+44>>2]=3;if(!q[wd+52|0]){break b}break a}p[wd+44>>2]=4}p[wd+20>>2]=xd;p[wd+40>>2]=p[wd+40>>2]+1;if(p[wd+36>>2]!=1|p[wd+24>>2]!=2){break a}n[wd+54|0]=1;return}kd=p[kd+8>>2];m[p[p[kd>>2]+24>>2]](kd,wd,xd,zd,Gd)}}function mh(kd,wd,xd,zd,Gd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;Gd=Gd|0;if(_g(kd,p[wd+8>>2],Gd)){hh(wd,xd,zd);return}a:{if(!_g(kd,p[wd>>2],Gd)){break a}if(!(p[wd+20>>2]!=(xd|0)?p[wd+16>>2]!=(xd|0):0)){if((zd|0)!=1){break a}p[wd+32>>2]=1;return}p[wd+20>>2]=xd;p[wd+32>>2]=zd;p[wd+40>>2]=p[wd+40>>2]+1;if(!(p[wd+36>>2]!=1|p[wd+24>>2]!=2)){n[wd+54|0]=1}p[wd+44>>2]=4}}function nh(kd,wd,xd,zd,Gd,Sd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;Gd=Gd|0;Sd=Sd|0;var Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0;if(_g(kd,p[wd+8>>2],Sd)){gh(wd,xd,zd,Gd);return}Ud=q[wd+53|0];Td=p[kd+12>>2];n[wd+53|0]=0;Vd=q[wd+52|0];n[wd+52|0]=0;Wd=kd+16|0;jh(Wd,wd,xd,zd,Gd,Sd);Xd=q[wd+53|0];Ud=Ud|Xd;Yd=q[wd+52|0];Vd=Vd|Yd;a:{if((Td|0)<2){break a}Wd=Wd+(Td<<3)|0;Td=kd+24|0;while(1){if(q[wd+54|0]){break a}b:{if(Yd){if(p[wd+24>>2]==1){break a}if(q[kd+8|0]&2){break b}break a}if(!Xd){break b}if(!(n[kd+8|0]&1)){break a}}o[wd+52>>1]=0;jh(Td,wd,xd,zd,Gd,Sd);Xd=q[wd+53|0];Ud=Xd|Ud;Yd=q[wd+52|0];Vd=Yd|Vd;Td=Td+8|0;if(Td>>>0>>0){continue}break}}n[wd+53|0]=(Ud&255)!=0;n[wd+52|0]=(Vd&255)!=0}function oh(kd,wd,xd,zd,Gd,Sd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;Gd=Gd|0;Sd=Sd|0;if(_g(kd,p[wd+8>>2],Sd)){gh(wd,xd,zd,Gd);return}kd=p[kd+8>>2];m[p[p[kd>>2]+20>>2]](kd,wd,xd,zd,Gd,Sd)}function ph(kd,wd,xd,zd,Gd,Sd){kd=kd|0;wd=wd|0;xd=xd|0;zd=zd|0;Gd=Gd|0;Sd=Sd|0;if(_g(kd,p[wd+8>>2],Sd)){gh(wd,xd,zd,Gd)}}function qh(kd){kd=kd|0;var wd=0,xd=0,zd=0,Gd=0,Sd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0;ce=S-16|0;S=ce;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(kd>>>0<=244){Sd=p[3370];_d=kd>>>0<11?16:kd+11&-8;wd=_d>>>3;kd=Sd>>>wd;if(kd&3){zd=wd+((kd^-1)&1)|0;wd=zd<<3;Gd=p[wd+13528>>2];kd=Gd+8|0;xd=p[Gd+8>>2];wd=wd+13520|0;l:{if((xd|0)==(wd|0)){de=13480,ee=Vh(zd)&Sd,p[de>>2]=ee;break l}p[xd+12>>2]=wd;p[wd+8>>2]=xd}wd=zd<<3;p[Gd+4>>2]=wd|3;wd=wd+Gd|0;p[wd+4>>2]=p[wd+4>>2]|1;break a}be=p[3372];if(_d>>>0<=be>>>0){break k}if(kd){xd=kd<>>12&16;xd=kd;wd=wd>>>kd;kd=wd>>>5&8;xd=xd|kd;wd=wd>>>kd;kd=wd>>>2&4;xd=xd|kd;wd=wd>>>kd;kd=wd>>>1&2;xd=xd|kd;wd=wd>>>kd;kd=wd>>>1&1;xd=(xd|kd)+(wd>>>kd)|0;kd=xd<<3;Zd=p[kd+13528>>2];wd=p[Zd+8>>2];kd=kd+13520|0;m:{if((wd|0)==(kd|0)){Sd=Vh(xd)&Sd;p[3370]=Sd;break m}p[wd+12>>2]=kd;p[kd+8>>2]=wd}kd=Zd+8|0;p[Zd+4>>2]=_d|3;zd=Zd+_d|0;wd=xd<<3;Gd=wd-_d|0;p[zd+4>>2]=Gd|1;p[wd+Zd>>2]=Gd;if(be){wd=be>>>3;xd=(wd<<3)+13520|0;_d=p[3375];wd=1<>2]}p[xd+8>>2]=_d;p[wd+12>>2]=_d;p[_d+12>>2]=xd;p[_d+8>>2]=wd}p[3375]=zd;p[3372]=Gd;break a}$d=p[3371];if(!$d){break k}wd=($d&0-$d)+ -1|0;kd=wd>>>12&16;xd=kd;wd=wd>>>kd;kd=wd>>>5&8;xd=xd|kd;wd=wd>>>kd;kd=wd>>>2&4;xd=xd|kd;wd=wd>>>kd;kd=wd>>>1&2;xd=xd|kd;wd=wd>>>kd;kd=wd>>>1&1;wd=p[((xd|kd)+(wd>>>kd)<<2)+13784>>2];zd=(p[wd+4>>2]&-8)-_d|0;xd=wd;while(1){o:{kd=p[xd+16>>2];if(!kd){kd=p[xd+20>>2];if(!kd){break o}}xd=(p[kd+4>>2]&-8)-_d|0;Gd=xd>>>0>>0;zd=Gd?xd:zd;wd=Gd?kd:wd;xd=kd;continue}break}ae=p[wd+24>>2];Gd=p[wd+12>>2];if((Gd|0)!=(wd|0)){kd=p[wd+8>>2];p[kd+12>>2]=Gd;p[Gd+8>>2]=kd;break b}xd=wd+20|0;kd=p[xd>>2];if(!kd){kd=p[wd+16>>2];if(!kd){break j}xd=wd+16|0}while(1){Zd=xd;Gd=kd;xd=kd+20|0;kd=p[xd>>2];if(kd){continue}xd=Gd+16|0;kd=p[Gd+16>>2];if(kd){continue}break}p[Zd>>2]=0;break b}_d=-1;if(kd>>>0>4294967231){break k}kd=kd+11|0;_d=kd&-8;$d=p[3371];if(!$d){break k}kd=kd>>>8;Zd=0;p:{if(!kd){break p}Zd=31;if(_d>>>0>16777215){break p}wd=kd+1048320>>>16&8;kd=kd<>>16&4;kd=kd<>>16&2;kd=(kd<>>15)-(xd|(wd|zd))|0;Zd=(kd<<1|_d>>>kd+21&1)+28|0}xd=0-_d|0;zd=p[(Zd<<2)+13784>>2];q:{r:{s:{if(!zd){kd=0;break s}wd=_d<<((Zd|0)==31?0:25-(Zd>>>1)|0);kd=0;while(1){t:{Sd=(p[zd+4>>2]&-8)-_d|0;if(Sd>>>0>=xd>>>0){break t}Gd=zd;xd=Sd;if(xd){break t}xd=0;kd=zd;break r}Sd=p[zd+20>>2];zd=p[((wd>>>29&4)+zd|0)+16>>2];kd=Sd?(Sd|0)==(zd|0)?kd:Sd:kd;wd=wd<<((zd|0)!=0);if(zd){continue}break}}if(!(kd|Gd)){kd=2<>>12&16;zd=kd;wd=wd>>>kd;kd=wd>>>5&8;zd=zd|kd;wd=wd>>>kd;kd=wd>>>2&4;zd=zd|kd;wd=wd>>>kd;kd=wd>>>1&2;zd=zd|kd;wd=wd>>>kd;kd=wd>>>1&1;kd=p[((zd|kd)+(wd>>>kd)<<2)+13784>>2]}if(!kd){break q}}while(1){wd=(p[kd+4>>2]&-8)-_d|0;zd=wd>>>0>>0;xd=zd?wd:xd;Gd=zd?kd:Gd;wd=p[kd+16>>2];if(wd){kd=wd}else{kd=p[kd+20>>2]}if(kd){continue}break}}if(!Gd|xd>>>0>=p[3372]-_d>>>0){break k}Zd=p[Gd+24>>2];wd=p[Gd+12>>2];if((Gd|0)!=(wd|0)){kd=p[Gd+8>>2];p[kd+12>>2]=wd;p[wd+8>>2]=kd;break c}zd=Gd+20|0;kd=p[zd>>2];if(!kd){kd=p[Gd+16>>2];if(!kd){break i}zd=Gd+16|0}while(1){Sd=zd;wd=kd;zd=kd+20|0;kd=p[zd>>2];if(kd){continue}zd=wd+16|0;kd=p[wd+16>>2];if(kd){continue}break}p[Sd>>2]=0;break c}xd=p[3372];if(xd>>>0>=_d>>>0){zd=p[3375];wd=xd-_d|0;u:{if(wd>>>0>=16){p[3372]=wd;kd=zd+_d|0;p[3375]=kd;p[kd+4>>2]=wd|1;p[xd+zd>>2]=wd;p[zd+4>>2]=_d|3;break u}p[3375]=0;p[3372]=0;p[zd+4>>2]=xd|3;kd=xd+zd|0;p[kd+4>>2]=p[kd+4>>2]|1}kd=zd+8|0;break a}ae=p[3373];if(ae>>>0>_d>>>0){wd=ae-_d|0;p[3373]=wd;xd=p[3376];kd=xd+_d|0;p[3376]=kd;p[kd+4>>2]=wd|1;p[xd+4>>2]=_d|3;kd=xd+8|0;break a}kd=0;$d=_d+47|0;wd=$d;if(p[3488]){xd=p[3490]}else{p[3491]=-1;p[3492]=-1;p[3489]=4096;p[3490]=4096;p[3488]=ce+12&-16^1431655768;p[3493]=0;p[3481]=0;xd=4096}Zd=wd+xd|0;Sd=0-xd|0;xd=Zd&Sd;if(xd>>>0<=_d>>>0){break a}Gd=p[3480];if(Gd){zd=p[3478];wd=zd+xd|0;if(wd>>>0<=zd>>>0|wd>>>0>Gd>>>0){break a}}if(q[13924]&4){break f}v:{w:{zd=p[3376];if(zd){kd=13928;while(1){wd=p[kd>>2];if(wd+p[kd+4>>2]>>>0>zd>>>0?wd>>>0<=zd>>>0:0){break w}kd=p[kd+8>>2];if(kd){continue}break}}wd=sh(0);if((wd|0)==-1){break g}Sd=xd;zd=p[3489];kd=zd+ -1|0;if(kd&wd){Sd=(xd-wd|0)+(kd+wd&0-zd)|0}if(Sd>>>0<=_d>>>0|Sd>>>0>2147483646){break g}Gd=p[3480];if(Gd){zd=p[3478];kd=zd+Sd|0;if(kd>>>0<=zd>>>0|kd>>>0>Gd>>>0){break g}}kd=sh(Sd);if((wd|0)!=(kd|0)){break v}break e}Sd=Sd&Zd-ae;if(Sd>>>0>2147483646){break g}wd=sh(Sd);if((wd|0)==(p[kd>>2]+p[kd+4>>2]|0)){break h}kd=wd}wd=kd;if(!(_d+48>>>0<=Sd>>>0|Sd>>>0>2147483646|(kd|0)==-1)){kd=p[3490];kd=kd+($d-Sd|0)&0-kd;if(kd>>>0>2147483646){break e}if((sh(kd)|0)!=-1){Sd=kd+Sd|0;break e}sh(0-Sd|0);break g}if((wd|0)!=-1){break e}break g}Gd=0;break b}wd=0;break c}if((wd|0)!=-1){break e}}p[3481]=p[3481]|4}if(xd>>>0>2147483646){break d}wd=sh(xd);kd=sh(0);if(wd>>>0>=kd>>>0|(wd|0)==-1|(kd|0)==-1){break d}Sd=kd-wd|0;if(Sd>>>0<=_d+40>>>0){break d}}kd=p[3478]+Sd|0;p[3478]=kd;if(kd>>>0>s[3479]){p[3479]=kd}x:{y:{z:{zd=p[3376];if(zd){kd=13928;while(1){Gd=p[kd>>2];xd=p[kd+4>>2];if((Gd+xd|0)==(wd|0)){break z}kd=p[kd+8>>2];if(kd){continue}break}break y}kd=p[3374];if(!(wd>>>0>=kd>>>0?kd:0)){p[3374]=wd}kd=0;p[3483]=Sd;p[3482]=wd;p[3378]=-1;p[3379]=p[3488];p[3485]=0;while(1){zd=kd<<3;xd=zd+13520|0;p[zd+13528>>2]=xd;p[zd+13532>>2]=xd;kd=kd+1|0;if((kd|0)!=32){continue}break}zd=Sd+ -40|0;kd=wd+8&7?-8-wd&7:0;xd=zd-kd|0;p[3373]=xd;kd=kd+wd|0;p[3376]=kd;p[kd+4>>2]=xd|1;p[(wd+zd|0)+4>>2]=40;p[3377]=p[3492];break x}if(q[kd+12|0]&8|wd>>>0<=zd>>>0|Gd>>>0>zd>>>0){break y}p[kd+4>>2]=xd+Sd;kd=zd+8&7?-8-zd&7:0;xd=kd+zd|0;p[3376]=xd;wd=p[3373]+Sd|0;kd=wd-kd|0;p[3373]=kd;p[xd+4>>2]=kd|1;p[(wd+zd|0)+4>>2]=40;p[3377]=p[3492];break x}Gd=p[3374];if(wd>>>0>>0){p[3374]=wd;Gd=0}xd=wd+Sd|0;kd=13928;A:{B:{C:{D:{E:{F:{while(1){if((xd|0)!=p[kd>>2]){kd=p[kd+8>>2];if(kd){continue}break F}break}if(!(q[kd+12|0]&8)){break E}}kd=13928;while(1){xd=p[kd>>2];if(xd>>>0<=zd>>>0){Zd=xd+p[kd+4>>2]|0;if(Zd>>>0>zd>>>0){break D}}kd=p[kd+8>>2];continue}}p[kd>>2]=wd;p[kd+4>>2]=p[kd+4>>2]+Sd;ae=(wd+8&7?-8-wd&7:0)+wd|0;p[ae+4>>2]=_d|3;wd=xd+(xd+8&7?-8-xd&7:0)|0;kd=(wd-ae|0)-_d|0;Zd=_d+ae|0;if((wd|0)==(zd|0)){p[3376]=Zd;kd=p[3373]+kd|0;p[3373]=kd;p[Zd+4>>2]=kd|1;break B}if(p[3375]==(wd|0)){p[3375]=Zd;kd=p[3372]+kd|0;p[3372]=kd;p[Zd+4>>2]=kd|1;p[kd+Zd>>2]=kd;break B}xd=p[wd+4>>2];if((xd&3)==1){$d=xd&-8;G:{if(xd>>>0<=255){Gd=p[wd+8>>2];xd=xd>>>3;zd=p[wd+12>>2];if((zd|0)==(Gd|0)){de=13480,ee=p[3370]&Vh(xd),p[de>>2]=ee;break G}p[Gd+12>>2]=zd;p[zd+8>>2]=Gd;break G}be=p[wd+24>>2];Sd=p[wd+12>>2];H:{if((Sd|0)!=(wd|0)){xd=p[wd+8>>2];p[xd+12>>2]=Sd;p[Sd+8>>2]=xd;break H}I:{zd=wd+20|0;_d=p[zd>>2];if(_d){break I}zd=wd+16|0;_d=p[zd>>2];if(_d){break I}Sd=0;break H}while(1){xd=zd;Sd=_d;zd=Sd+20|0;_d=p[zd>>2];if(_d){continue}zd=Sd+16|0;_d=p[Sd+16>>2];if(_d){continue}break}p[xd>>2]=0}if(!be){break G}zd=p[wd+28>>2];xd=(zd<<2)+13784|0;J:{if(p[xd>>2]==(wd|0)){p[xd>>2]=Sd;if(Sd){break J}de=13484,ee=p[3371]&Vh(zd),p[de>>2]=ee;break G}p[be+(p[be+16>>2]==(wd|0)?16:20)>>2]=Sd;if(!Sd){break G}}p[Sd+24>>2]=be;xd=p[wd+16>>2];if(xd){p[Sd+16>>2]=xd;p[xd+24>>2]=Sd}xd=p[wd+20>>2];if(!xd){break G}p[Sd+20>>2]=xd;p[xd+24>>2]=Sd}wd=wd+$d|0;kd=kd+$d|0}p[wd+4>>2]=p[wd+4>>2]&-2;p[Zd+4>>2]=kd|1;p[kd+Zd>>2]=kd;if(kd>>>0<=255){kd=kd>>>3;wd=(kd<<3)+13520|0;xd=p[3370];kd=1<>2]}p[wd+8>>2]=Zd;p[kd+12>>2]=Zd;p[Zd+12>>2]=wd;p[Zd+8>>2]=kd;break B}wd=Zd;zd=kd>>>8;xd=0;L:{if(!zd){break L}xd=31;if(kd>>>0>16777215){break L}xd=zd;zd=zd+1048320>>>16&8;xd=xd<>>16&4;xd=xd<>>16&2;xd=(xd<>>15)-(Gd|(zd|Sd))|0;xd=(xd<<1|kd>>>xd+21&1)+28|0}p[wd+28>>2]=xd;p[Zd+16>>2]=0;p[Zd+20>>2]=0;Gd=(xd<<2)+13784|0;zd=p[3371];wd=1<>2]=Zd;p[Zd+24>>2]=Gd;break M}zd=kd<<((xd|0)==31?0:25-(xd>>>1)|0);wd=p[Gd>>2];while(1){xd=wd;if((p[wd+4>>2]&-8)==(kd|0)){break C}wd=zd>>>29;zd=zd<<1;Gd=(xd+(wd&4)|0)+16|0;wd=p[Gd>>2];if(wd){continue}break}p[Gd>>2]=Zd;p[Zd+24>>2]=xd}p[Zd+12>>2]=Zd;p[Zd+8>>2]=Zd;break B}Gd=Sd+ -40|0;kd=wd+8&7?-8-wd&7:0;xd=Gd-kd|0;p[3373]=xd;kd=kd+wd|0;p[3376]=kd;p[kd+4>>2]=xd|1;p[(wd+Gd|0)+4>>2]=40;p[3377]=p[3492];kd=(Zd+(Zd+ -39&7?39-Zd&7:0)|0)+ -47|0;xd=kd>>>0>>0?zd:kd;p[xd+4>>2]=27;kd=p[3485];p[xd+16>>2]=p[3484];p[xd+20>>2]=kd;kd=p[3483];p[xd+8>>2]=p[3482];p[xd+12>>2]=kd;p[3484]=xd+8;p[3483]=Sd;p[3482]=wd;p[3485]=0;kd=xd+24|0;while(1){p[kd+4>>2]=7;wd=kd+8|0;kd=kd+4|0;if(wd>>>0>>0){continue}break}if((xd|0)==(zd|0)){break x}p[xd+4>>2]=p[xd+4>>2]&-2;Zd=xd-zd|0;p[zd+4>>2]=Zd|1;p[xd>>2]=Zd;if(Zd>>>0<=255){kd=Zd>>>3;wd=(kd<<3)+13520|0;xd=p[3370];kd=1<>2]}p[wd+8>>2]=zd;p[kd+12>>2]=zd;p[zd+12>>2]=wd;p[zd+8>>2]=kd;break x}p[zd+16>>2]=0;p[zd+20>>2]=0;kd=zd;xd=Zd>>>8;wd=0;O:{if(!xd){break O}wd=31;if(Zd>>>0>16777215){break O}wd=xd;xd=xd+1048320>>>16&8;wd=wd<>>16&4;wd=wd<>>16&2;wd=(wd<>>15)-(Gd|(xd|Sd))|0;wd=(wd<<1|Zd>>>wd+21&1)+28|0}p[kd+28>>2]=wd;Gd=(wd<<2)+13784|0;xd=p[3371];kd=1<>2]=zd;p[zd+24>>2]=Gd;break P}kd=Zd<<((wd|0)==31?0:25-(wd>>>1)|0);wd=p[Gd>>2];while(1){xd=wd;if((Zd|0)==(p[wd+4>>2]&-8)){break A}wd=kd>>>29;kd=kd<<1;Gd=(xd+(wd&4)|0)+16|0;wd=p[Gd>>2];if(wd){continue}break}p[Gd>>2]=zd;p[zd+24>>2]=xd}p[zd+12>>2]=zd;p[zd+8>>2]=zd;break x}kd=p[xd+8>>2];p[kd+12>>2]=Zd;p[xd+8>>2]=Zd;p[Zd+24>>2]=0;p[Zd+12>>2]=xd;p[Zd+8>>2]=kd}kd=ae+8|0;break a}kd=p[xd+8>>2];p[kd+12>>2]=zd;p[xd+8>>2]=zd;p[zd+24>>2]=0;p[zd+12>>2]=xd;p[zd+8>>2]=kd}kd=p[3373];if(kd>>>0<=_d>>>0){break d}wd=kd-_d|0;p[3373]=wd;xd=p[3376];kd=xd+_d|0;p[3376]=kd;p[kd+4>>2]=wd|1;p[xd+4>>2]=_d|3;kd=xd+8|0;break a}p[3351]=48;kd=0;break a}Q:{if(!Zd){break Q}zd=p[Gd+28>>2];kd=(zd<<2)+13784|0;R:{if(p[kd>>2]==(Gd|0)){p[kd>>2]=wd;if(wd){break R}$d=Vh(zd)&$d;p[3371]=$d;break Q}p[Zd+(p[Zd+16>>2]==(Gd|0)?16:20)>>2]=wd;if(!wd){break Q}}p[wd+24>>2]=Zd;kd=p[Gd+16>>2];if(kd){p[wd+16>>2]=kd;p[kd+24>>2]=wd}kd=p[Gd+20>>2];if(!kd){break Q}p[wd+20>>2]=kd;p[kd+24>>2]=wd}S:{if(xd>>>0<=15){kd=xd+_d|0;p[Gd+4>>2]=kd|3;kd=kd+Gd|0;p[kd+4>>2]=p[kd+4>>2]|1;break S}p[Gd+4>>2]=_d|3;zd=Gd+_d|0;p[zd+4>>2]=xd|1;p[xd+zd>>2]=xd;if(xd>>>0<=255){kd=xd>>>3;wd=(kd<<3)+13520|0;xd=p[3370];kd=1<>2]}p[wd+8>>2]=zd;p[kd+12>>2]=zd;p[zd+12>>2]=wd;p[zd+8>>2]=kd;break S}kd=zd;Sd=xd>>>8;wd=0;U:{if(!Sd){break U}wd=31;if(xd>>>0>16777215){break U}wd=Sd;Sd=Sd+1048320>>>16&8;wd=wd<>>16&4;wd=wd<>>16&2;wd=(wd<<_d>>>15)-(_d|(Sd|Zd))|0;wd=(wd<<1|xd>>>wd+21&1)+28|0}p[kd+28>>2]=wd;p[zd+16>>2]=0;p[zd+20>>2]=0;Sd=(wd<<2)+13784|0;V:{kd=1<>2]=zd;p[zd+24>>2]=Sd;break W}kd=xd<<((wd|0)==31?0:25-(wd>>>1)|0);_d=p[Sd>>2];while(1){wd=_d;if((p[wd+4>>2]&-8)==(xd|0)){break V}Sd=kd>>>29;kd=kd<<1;Sd=(wd+(Sd&4)|0)+16|0;_d=p[Sd>>2];if(_d){continue}break}p[Sd>>2]=zd;p[zd+24>>2]=wd}p[zd+12>>2]=zd;p[zd+8>>2]=zd;break S}kd=p[wd+8>>2];p[kd+12>>2]=zd;p[wd+8>>2]=zd;p[zd+24>>2]=0;p[zd+12>>2]=wd;p[zd+8>>2]=kd}kd=Gd+8|0;break a}X:{if(!ae){break X}xd=p[wd+28>>2];kd=(xd<<2)+13784|0;Y:{if(p[kd>>2]==(wd|0)){p[kd>>2]=Gd;if(Gd){break Y}de=13484,ee=Vh(xd)&$d,p[de>>2]=ee;break X}p[(p[ae+16>>2]==(wd|0)?16:20)+ae>>2]=Gd;if(!Gd){break X}}p[Gd+24>>2]=ae;kd=p[wd+16>>2];if(kd){p[Gd+16>>2]=kd;p[kd+24>>2]=Gd}kd=p[wd+20>>2];if(!kd){break X}p[Gd+20>>2]=kd;p[kd+24>>2]=Gd}Z:{if(zd>>>0<=15){kd=zd+_d|0;p[wd+4>>2]=kd|3;kd=kd+wd|0;p[kd+4>>2]=p[kd+4>>2]|1;break Z}p[wd+4>>2]=_d|3;Gd=wd+_d|0;p[Gd+4>>2]=zd|1;p[zd+Gd>>2]=zd;if(be){kd=be>>>3;xd=(kd<<3)+13520|0;_d=p[3375];kd=1<>2]}p[xd+8>>2]=_d;p[kd+12>>2]=_d;p[_d+12>>2]=xd;p[_d+8>>2]=kd}p[3375]=Gd;p[3372]=zd}kd=wd+8|0}S=ce+16|0;return kd|0}function rh(kd){kd=kd|0;var fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0;a:{if(!kd){break a}he=kd+ -8|0;ge=p[kd+ -4>>2];kd=ge&-8;je=he+kd|0;b:{if(ge&1){break b}if(!(ge&3)){break a}ge=p[he>>2];he=he-ge|0;if(he>>>0>>0<=255){ie=p[he+8>>2];ge=ge>>>3;fe=p[he+12>>2];if((fe|0)==(ie|0)){me=13480,ne=p[3370]&Vh(ge),p[me>>2]=ne;break b}p[ie+12>>2]=fe;p[fe+8>>2]=ie;break b}le=p[he+24>>2];ge=p[he+12>>2];c:{if((ge|0)!=(he|0)){fe=p[he+8>>2];p[fe+12>>2]=ge;p[ge+8>>2]=fe;break c}d:{ie=he+20|0;fe=p[ie>>2];if(fe){break d}ie=he+16|0;fe=p[ie>>2];if(fe){break d}ge=0;break c}while(1){ke=ie;ge=fe;ie=ge+20|0;fe=p[ie>>2];if(fe){continue}ie=ge+16|0;fe=p[ge+16>>2];if(fe){continue}break}p[ke>>2]=0}if(!le){break b}ie=p[he+28>>2];fe=(ie<<2)+13784|0;e:{if(p[fe>>2]==(he|0)){p[fe>>2]=ge;if(ge){break e}me=13484,ne=p[3371]&Vh(ie),p[me>>2]=ne;break b}p[le+(p[le+16>>2]==(he|0)?16:20)>>2]=ge;if(!ge){break b}}p[ge+24>>2]=le;fe=p[he+16>>2];if(fe){p[ge+16>>2]=fe;p[fe+24>>2]=ge}fe=p[he+20>>2];if(!fe){break b}p[ge+20>>2]=fe;p[fe+24>>2]=ge;break b}ge=p[je+4>>2];if((ge&3)!=3){break b}p[3372]=kd;p[je+4>>2]=ge&-2;p[he+4>>2]=kd|1;p[kd+he>>2]=kd;return}if(je>>>0<=he>>>0){break a}ge=p[je+4>>2];if(!(ge&1)){break a}f:{if(!(ge&2)){if((je|0)==p[3376]){p[3376]=he;kd=p[3373]+kd|0;p[3373]=kd;p[he+4>>2]=kd|1;if(p[3375]!=(he|0)){break a}p[3372]=0;p[3375]=0;return}if((je|0)==p[3375]){p[3375]=he;kd=p[3372]+kd|0;p[3372]=kd;p[he+4>>2]=kd|1;p[kd+he>>2]=kd;return}kd=(ge&-8)+kd|0;g:{if(ge>>>0<=255){fe=p[je+8>>2];ge=ge>>>3;ie=p[je+12>>2];if((fe|0)==(ie|0)){me=13480,ne=p[3370]&Vh(ge),p[me>>2]=ne;break g}p[fe+12>>2]=ie;p[ie+8>>2]=fe;break g}le=p[je+24>>2];ge=p[je+12>>2];h:{if((je|0)!=(ge|0)){fe=p[je+8>>2];p[fe+12>>2]=ge;p[ge+8>>2]=fe;break h}i:{ie=je+20|0;fe=p[ie>>2];if(fe){break i}ie=je+16|0;fe=p[ie>>2];if(fe){break i}ge=0;break h}while(1){ke=ie;ge=fe;ie=ge+20|0;fe=p[ie>>2];if(fe){continue}ie=ge+16|0;fe=p[ge+16>>2];if(fe){continue}break}p[ke>>2]=0}if(!le){break g}ie=p[je+28>>2];fe=(ie<<2)+13784|0;j:{if((je|0)==p[fe>>2]){p[fe>>2]=ge;if(ge){break j}me=13484,ne=p[3371]&Vh(ie),p[me>>2]=ne;break g}p[le+((je|0)==p[le+16>>2]?16:20)>>2]=ge;if(!ge){break g}}p[ge+24>>2]=le;fe=p[je+16>>2];if(fe){p[ge+16>>2]=fe;p[fe+24>>2]=ge}fe=p[je+20>>2];if(!fe){break g}p[ge+20>>2]=fe;p[fe+24>>2]=ge}p[he+4>>2]=kd|1;p[kd+he>>2]=kd;if(p[3375]!=(he|0)){break f}p[3372]=kd;return}p[je+4>>2]=ge&-2;p[he+4>>2]=kd|1;p[kd+he>>2]=kd}if(kd>>>0<=255){kd=kd>>>3;ge=(kd<<3)+13520|0;fe=p[3370];kd=1<>2]}p[ge+8>>2]=he;p[kd+12>>2]=he;p[he+12>>2]=ge;p[he+8>>2]=kd;return}p[he+16>>2]=0;p[he+20>>2]=0;ge=he;ie=kd>>>8;fe=0;l:{if(!ie){break l}fe=31;if(kd>>>0>16777215){break l}fe=ie;ie=ie+1048320>>>16&8;fe=fe<>>16&4;fe=fe<>>16&2;fe=(fe<>>15)-(ke|(ie|le))|0;fe=(fe<<1|kd>>>fe+21&1)+28|0}p[ge+28>>2]=fe;ke=(fe<<2)+13784|0;ie=p[3371];ge=1<>2]=he;p[he+12>>2]=he;p[he+24>>2]=ke;p[he+8>>2]=he;break m}ie=kd<<((fe|0)==31?0:25-(fe>>>1)|0);ge=p[ke>>2];n:{while(1){fe=ge;if((p[ge+4>>2]&-8)==(kd|0)){break n}ge=ie>>>29;ie=ie<<1;ke=(fe+(ge&4)|0)+16|0;ge=p[ke>>2];if(ge){continue}break}p[ke>>2]=he;p[he+12>>2]=he;p[he+24>>2]=fe;p[he+8>>2]=he;break m}kd=p[fe+8>>2];p[kd+12>>2]=he;p[fe+8>>2]=he;p[he+24>>2]=0;p[he+12>>2]=fe;p[he+8>>2]=kd}kd=p[3378]+ -1|0;p[3378]=kd;if(kd){break a}he=13936;while(1){kd=p[he>>2];he=kd+8|0;if(kd){continue}break}p[3378]=-1}}function sh(kd){var oe=0;oe=p[3496];kd=oe+kd|0;if((kd|0)<=-1){p[3351]=48;return-1}a:{if(kd>>>0<=V()<<16>>>0){break a}if(O(kd|0)){break a}p[3351]=48;return-1}p[3496]=kd;return oe}function th(kd,pe,qe){var re=0,se=0,te=0;if(qe>>>0>=8192){P(kd|0,pe|0,qe|0)|0;return kd}se=kd+qe|0;a:{if(!((kd^pe)&3)){b:{if((qe|0)<1){qe=kd;break b}if(!(kd&3)){qe=kd;break b}qe=kd;while(1){n[qe|0]=q[pe|0];pe=pe+1|0;qe=qe+1|0;if(qe>>>0>=se>>>0){break b}if(qe&3){continue}break}}re=se&-4;c:{if(re>>>0<64){break c}te=re+ -64|0;if(qe>>>0>te>>>0){break c}while(1){p[qe>>2]=p[pe>>2];p[qe+4>>2]=p[pe+4>>2];p[qe+8>>2]=p[pe+8>>2];p[qe+12>>2]=p[pe+12>>2];p[qe+16>>2]=p[pe+16>>2];p[qe+20>>2]=p[pe+20>>2];p[qe+24>>2]=p[pe+24>>2];p[qe+28>>2]=p[pe+28>>2];p[qe+32>>2]=p[pe+32>>2];p[qe+36>>2]=p[pe+36>>2];p[qe+40>>2]=p[pe+40>>2];p[qe+44>>2]=p[pe+44>>2];p[qe+48>>2]=p[pe+48>>2];p[qe+52>>2]=p[pe+52>>2];p[qe+56>>2]=p[pe+56>>2];p[qe+60>>2]=p[pe+60>>2];pe=pe- -64|0;qe=qe- -64|0;if(qe>>>0<=te>>>0){continue}break}}if(qe>>>0>=re>>>0){break a}while(1){p[qe>>2]=p[pe>>2];pe=pe+4|0;qe=qe+4|0;if(qe>>>0>>0){continue}break}break a}if(se>>>0<4){qe=kd;break a}re=se+ -4|0;if(re>>>0>>0){qe=kd;break a}qe=kd;while(1){n[qe|0]=q[pe|0];n[qe+1|0]=q[pe+1|0];n[qe+2|0]=q[pe+2|0];n[qe+3|0]=q[pe+3|0];pe=pe+4|0;qe=qe+4|0;if(qe>>>0<=re>>>0){continue}break}}if(qe>>>0>>0){while(1){n[qe|0]=q[pe|0];pe=pe+1|0;qe=qe+1|0;if((se|0)!=(qe|0)){continue}break}}return kd}function uh(kd,pe,qe){var ue=0,ve=0,we=0,xe=0;a:{if(!qe){break a}ue=kd+qe|0;n[ue+ -1|0]=pe;n[kd|0]=pe;if(qe>>>0<3){break a}n[ue+ -2|0]=pe;n[kd+1|0]=pe;n[ue+ -3|0]=pe;n[kd+2|0]=pe;if(qe>>>0<7){break a}n[ue+ -4|0]=pe;n[kd+3|0]=pe;if(qe>>>0<9){break a}ue=0-kd&3;ve=ue+kd|0;pe=v(pe&255,16843009);p[ve>>2]=pe;qe=qe-ue&-4;ue=qe+ve|0;p[ue+ -4>>2]=pe;if(qe>>>0<9){break a}p[ve+8>>2]=pe;p[ve+4>>2]=pe;p[ue+ -8>>2]=pe;p[ue+ -12>>2]=pe;if(qe>>>0<25){break a}p[ve+24>>2]=pe;p[ve+20>>2]=pe;p[ve+16>>2]=pe;p[ve+12>>2]=pe;p[ue+ -16>>2]=pe;p[ue+ -20>>2]=pe;p[ue+ -24>>2]=pe;p[ue+ -28>>2]=pe;xe=ve&4|24;qe=qe-xe|0;if(qe>>>0<32){break a}ue=pe;we=pe;pe=ve+xe|0;while(1){p[pe+24>>2]=we;p[pe+28>>2]=ue;p[pe+16>>2]=we;p[pe+20>>2]=ue;p[pe+8>>2]=we;p[pe+12>>2]=ue;p[pe>>2]=we;p[pe+4>>2]=ue;pe=pe+32|0;qe=qe+ -32|0;if(qe>>>0>31){continue}break}}return kd}function vh(kd,pe,qe){var ye=0,ze=0;a:{if((kd|0)==(pe|0)){break a}b:{if(pe+qe>>>0>kd>>>0){ze=kd+qe|0;if(ze>>>0>pe>>>0){break b}}return th(kd,pe,qe)}ye=(kd^pe)&3;c:{d:{if(kd>>>0>>0){if(ye){ye=kd;break c}if(!(kd&3)){ye=kd;break d}ye=kd;while(1){if(!qe){break a}n[ye|0]=q[pe|0];pe=pe+1|0;qe=qe+ -1|0;ye=ye+1|0;if(ye&3){continue}break}break d}e:{if(ye){break e}if(ze&3){while(1){if(!qe){break a}qe=qe+ -1|0;ye=qe+kd|0;n[ye|0]=q[pe+qe|0];if(ye&3){continue}break}}if(qe>>>0<=3){break e}while(1){qe=qe+ -4|0;p[qe+kd>>2]=p[pe+qe>>2];if(qe>>>0>3){continue}break}}if(!qe){break a}while(1){qe=qe+ -1|0;n[qe+kd|0]=q[pe+qe|0];if(qe){continue}break}break a}if(qe>>>0<=3){break c}ze=qe;while(1){p[ye>>2]=p[pe>>2];pe=pe+4|0;ye=ye+4|0;ze=ze+ -4|0;if(ze>>>0>3){continue}break}qe=qe&3}if(!qe){break a}while(1){n[ye|0]=q[pe|0];ye=ye+1|0;pe=pe+1|0;qe=qe+ -1|0;if(qe){continue}break}}return kd}function wh(kd,pe){kd=kd|0;pe=pe|0;if(!p[3494]){p[3495]=pe;p[3494]=kd}}function xh(){return S|0}function yh(kd){kd=kd|0;kd=S-kd&-16;S=kd;return kd|0}function zh(kd){kd=kd|0;S=kd}function Ah(kd){kd=kd|0;return W(kd|0)|0}function Bh(kd,pe){kd=kd|0;pe=pe|0;return m[kd](pe)|0}function Ch(kd,pe){kd=kd|0;pe=pe|0;m[kd](pe)}function Dh(kd,pe,qe){kd=kd|0;pe=pe|0;qe=qe|0;return m[kd](pe,qe)|0}function Eh(kd,pe,qe,Ae){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;m[kd](pe,qe,Ae)}function Fh(kd,pe,qe){kd=kd|0;pe=pe|0;qe=qe|0;m[kd](pe,qe)}function Gh(kd,pe,qe,Ae){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;return m[kd](pe,qe,Ae)|0}function Hh(kd){kd=kd|0;m[kd]()}function Ih(kd,pe,qe,Ae,Be){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;Be=Be|0;m[kd](pe,qe,Ae,Be)}function Jh(kd,pe,qe,Ae,Be,Ce,De){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;Be=Be|0;Ce=Ce|0;De=De|0;return m[kd](pe,qe,Ae,Be,Ce,De)|0}function Kh(kd,pe,qe,Ae,Be,Ce,De){kd=kd|0;pe=pe|0;qe=+qe;Ae=Ae|0;Be=Be|0;Ce=Ce|0;De=De|0;return m[kd](pe,qe,Ae,Be,Ce,De)|0}function Lh(kd,pe,qe,Ae,Be,Ce,De){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;Be=Be|0;Ce=Ce|0;De=De|0;m[kd](pe,qe,Ae,Be,Ce,De)}function Mh(kd,pe,qe,Ae,Be,Ce){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;Be=Be|0;Ce=Ce|0;m[kd](pe,qe,Ae,Be,Ce)}function Nh(kd,pe,qe,Ae,Be){kd=kd|0;pe=pe|0;qe=qe|0;Ae=Ae|0;Be=Be|0;kd=m[kd](pe,qe,Ae,Be)|0;Q(U|0);return kd|0}function Oh(kd,pe){i(kd|0,pe|0)}function Ph(kd,pe,qe,Ae){var Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0;Be=qe>>>16;Ce=kd>>>16;Ge=v(Be,Ce);De=qe&65535;Ee=kd&65535;Fe=v(De,Ee);Ce=(Fe>>>16)+v(Ce,De)|0;Be=(Ce&65535)+v(Be,Ee)|0;kd=(((v(pe,qe)+Ge|0)+v(kd,Ae)|0)+(Ce>>>16)|0)+(Be>>>16)|0;pe=Fe&65535|Be<<16;U=kd;return pe}function Qh(kd,pe,qe,Ae){var He=0,Ie=0,Je=0,Ke=0;He=pe;Ie=He>>31;He=He>>31;kd=kd^He;Je=kd-He|0;Ke=(pe^Ie)-((kd>>>0>>0)+Ie|0)|0;He=Ae;Ie=He>>31;He=He>>31;kd=qe^He;He=Uh(Je,Ke,kd-He|0,(Ae^Ie)-((kd>>>0>>0)+Ie|0)|0);pe=pe^Ae;qe=pe>>31;kd=pe>>31;pe=He^kd;Ae=pe-kd|0;U=(qe^U)-((pe>>>0>>0)+qe|0)|0;return Ae}function Rh(kd,pe,qe,Ae){var Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{Ne=pe;if(Ne){Le=qe;if(!Le){break j}Me=Ae;if(!Me){break i}Me=y(Me)-y(Ne)|0;if(Me>>>0<=31){break h}break b}if((Ae|0)==1&qe>>>0>=0|Ae>>>0>1){break b}pe=(kd>>>0)/(qe>>>0)|0;Oh(kd-v(pe,qe)|0,0);U=0;return pe}Le=Ae;if(!kd){break g}if(!Le){break f}Me=Le+ -1|0;if(Me&Le){break f}Oh(kd,Me&Ne);kd=Ne>>>(Wh(Le)&31);U=0;return kd}Me=Le+ -1|0;if(!(Me&Le)){break e}Qe=(y(Le)+33|0)-y(Ne)|0;Oe=0-Qe|0;break c}Qe=Me+1|0;Oe=63-Me|0;break c}kd=(Ne>>>0)/(Le>>>0)|0;Oh(0,Ne-v(kd,Le)|0);U=0;return kd}Me=y(Le)-y(Ne)|0;if(Me>>>0<31){break d}break b}Oh(kd&Me,0);if((Le|0)==1){break a}qe=kd;kd=Wh(Le);Ae=kd&31;if(32<=(kd&63)>>>0){Me=0;kd=pe>>>Ae}else{Me=pe>>>Ae;kd=((1<>>Ae}U=Me;return kd}Qe=Me+1|0;Oe=63-Me|0}Le=pe;Ne=kd;Me=Qe&63;Pe=Me&31;if(32<=(Me&63)>>>0){Me=0;Se=Le>>>Pe}else{Me=Le>>>Pe;Se=((1<>>Pe}kd=Oe&63;Oe=kd&31;if(32<=(kd&63)>>>0){Le=Ne<>>32-Oe|pe<>>0<4294967295){Ne=Ne+1|0}Oe=Le;while(1){Le=Se;Me=Me<<1|Le>>>31;Le=Le<<1;Re=Me;Me=pe>>>31|Le;Te=Re;Le=Re;Re=Me;Pe=Ne-((Oe>>>0>>0)+Le|0)|0;Le=Pe>>31;Pe=Pe>>31;Me=qe&Pe;Se=Re-Me|0;Me=Te-((Ae&Le)+(Re>>>0>>0)|0)|0;Le=pe<<1|kd>>>31;kd=Ue|kd<<1;pe=Le|Ve;Le=0;Te=Le;Re=Pe&1;Ue=Re;Qe=Qe+ -1|0;if(Qe){continue}break}}Oh(Se,Me);Le=pe<<1|kd>>>31;kd=Re|kd<<1;U=Le|Te;return kd}Oh(kd,pe);kd=0;pe=0}U=pe;return kd}function Sh(kd,pe,qe,Ae){kd=Ph(kd,pe,qe,Ae);return kd}function Th(kd,pe,qe,Ae){kd=Qh(kd,pe,qe,Ae);return kd}function Uh(kd,pe,qe,Ae){kd=Rh(kd,pe,qe,Ae);return kd}function Vh(kd){var pe=0;pe=kd&31;kd=0-kd&31;return(-1>>>pe&-2)<>>kd}function Wh(kd){if(kd){return 31-y(kd+ -1^kd)|0}return 32} - - - - -// EMSCRIPTEN_END_FUNCS -m[1]=Vg;m[2]=ia;m[3]=pa;m[4]=qa;m[5]=ra;m[6]=bf;m[7]=af;m[8]=Ze;m[9]=_e;m[10]=ra;m[11]=Ua;m[12]=Wa;m[13]=Df;m[14]=Gf;m[15]=$a;m[16]=ab;m[17]=bb;m[18]=Za;m[19]=_a;m[20]=fb;m[21]=gb;m[22]=ra;m[23]=cb;m[24]=db;m[25]=xb;m[26]=yb;m[27]=sb;m[28]=tb;m[29]=zb;m[30]=Ab;m[31]=Bb;m[32]=Cb;m[33]=Db;m[34]=Tg;m[35]=Eb;m[36]=ra;m[37]=Pb;m[38]=Qb;m[39]=Ib;m[40]=Jb;m[41]=Kb;m[42]=Lb;m[43]=Eb;m[44]=Nb;m[45]=Ob;m[46]=Zb;m[47]=_b;m[48]=Sb;m[49]=Ub;m[50]=$b;m[51]=Vb;m[52]=Wb;m[53]=Xb;m[54]=Yb;m[55]=jc;m[56]=kc;m[57]=bc;m[58]=cc;m[59]=dc;m[60]=gc;m[61]=ec;m[62]=lc;m[63]=ic;m[64]=xc;m[65]=rc;m[66]=ra;m[67]=sc;m[68]=tc;m[69]=qa;m[70]=uc;m[71]=Db;m[72]=qa;m[73]=ra;m[74]=vc;m[75]=wc;m[76]=yb;m[77]=yb;m[78]=rc;m[79]=bb;m[80]=tc;m[81]=yc;m[82]=zc;m[83]=Ac;m[84]=Bc;m[85]=tc;m[86]=Cc;m[87]=Fc;m[88]=Jc;m[89]=Kc;m[90]=Lc;m[91]=Mc;m[92]=ra;m[93]=Db;m[94]=Nc;m[95]=Oc;m[96]=Pc;m[97]=Rc;m[98]=Sc;m[99]=Tc;m[100]=Mc;m[101]=ra;m[102]=Db;m[103]=Nc;m[104]=Uc;m[105]=Vc;m[106]=Yc;m[107]=Zc;m[108]=_c;m[109]=$c;m[110]=ra;m[111]=Db;m[112]=ad;m[113]=bd;m[114]=cd;m[115]=$a;m[116]=ab;m[117]=ed;m[118]=Cb;m[119]=dd;m[120]=rc;m[121]=ra;m[122]=tc;m[123]=hd;m[124]=yb;m[125]=rc;m[126]=bb;m[127]=tc;m[128]=id;m[129]=jd;m[130]=kd;m[131]=Bc;m[132]=tc;m[133]=Cc;m[134]=ld;m[135]=md;m[136]=nd;m[137]=Lc;m[138]=Mc;m[139]=ra;m[140]=Db;m[141]=Nc;m[142]=Oc;m[143]=od;m[144]=qd;m[145]=rd;m[146]=Tc;m[147]=Mc;m[148]=ra;m[149]=Db;m[150]=Nc;m[151]=Uc;m[152]=sd;m[153]=ud;m[154]=vd;m[155]=_c;m[156]=$c;m[157]=ra;m[158]=Db;m[159]=ad;m[160]=bd;m[161]=wd;m[162]=$a;m[163]=ab;m[164]=ed;m[165]=Cb;m[166]=xd;m[167]=rc;m[168]=qa;m[169]=ra;m[170]=zd;m[171]=kc;m[172]=Ad;m[173]=Cd;m[174]=Bd;m[175]=Fd;m[176]=bb;m[177]=Dd;m[178]=Id;m[179]=Jd;m[180]=_c;m[181]=sc;m[182]=Kd;m[183]=ra;m[184]=Db;m[185]=Ld;m[186]=ra;m[187]=bb;m[188]=Md;m[189]=Nd;m[190]=$a;m[191]=ab;m[192]=ed;m[193]=Cb;m[194]=dd;m[195]=Qd;m[196]=Rd;m[197]=_c;m[198]=Kd;m[199]=ra;m[200]=Db;m[201]=Ld;m[202]=Md;m[203]=Sd;m[204]=$a;m[205]=ab;m[206]=ed;m[207]=Cb;m[208]=xd;m[209]=$a;m[210]=ab;m[211]=qa;m[212]=ra;m[213]=qa;m[214]=uc;m[215]=Db;m[216]=Pd;m[217]=Td;m[218]=Ud;m[219]=Vd;m[220]=_c;m[221]=sc;m[222]=Kd;m[223]=ra;m[224]=Db;m[225]=Ld;m[226]=ra;m[227]=Lc;m[228]=Wd;m[229]=Xd;m[230]=$a;m[231]=ab;m[232]=ed;m[233]=Cb;m[234]=dd;m[235]=_d;m[236]=$d;m[237]=_c;m[238]=Kd;m[239]=ra;m[240]=Db;m[241]=Ld;m[242]=Wd;m[243]=ae;m[244]=$a;m[245]=ab;m[246]=ed;m[247]=Cb;m[248]=xd;m[249]=ab;m[250]=qa;m[251]=ra;m[252]=qa;m[253]=uc;m[254]=Db;m[255]=Zd;m[256]=be;m[257]=ie;m[258]=je;m[259]=ce;m[260]=ee;m[261]=de;m[262]=fe;m[263]=ge;m[264]=he;m[265]=$a;m[266]=ab;m[267]=Se;m[268]=Te;m[269]=yb;m[270]=ra;m[271]=If;m[272]=Vf;m[273]=Wf;m[274]=Zf;m[275]=Xf;m[276]=Yf;m[277]=$a;m[278]=ab;m[279]=Ug;m[280]=Xg;m[281]=Yg;m[282]=Zg;m[283]=$a;m[284]=ab;m[285]=Lf;m[286]=Lf;m[287]=$g;m[288]=ph;m[289]=mh;m[290]=ch;m[291]=ab;m[292]=oh;m[293]=lh;m[294]=dh;m[295]=ab;m[296]=nh;m[297]=ih;m[298]=fh;function V(){return buffer.byteLength/65536|0}function W(pagesToAdd){pagesToAdd=pagesToAdd|0;var X=V()|0;var Y=X+pagesToAdd|0;if(X>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":299,"maximum":299+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.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,outU8Array,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;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){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){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 WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}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 STACK_BASE=5257024,DYNAMIC_BASE=5257024,DYNAMICTOP_PTR=13984;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}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 addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="draco_animation_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(wasmBinaryFile);if(binary){return binary}if(readBinary){return readBinary(wasmBinaryFile)}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)&&typeof fetch==="function"){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()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_unstable":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}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();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){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+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_last=0;function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function _abort(){abort()}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_get_sbrk_ptr(){return 13984}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}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=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function _fd_close(fd){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}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;if(ABORT)return;initRuntime();preMain();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()()}}noExitRuntime=true;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){var offsetShifted=offset;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offsetShifted>>=1;break;case 4:offsetShifted>>=2;break;case 8:offsetShifted>>=3;break}for(var i=0;i3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=3)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var 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};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){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(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_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=function 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=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function 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=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){return func}function addFunctionWasm(func,sig){var table=wasmTable;var ret=table.length;try{table.grow(1)}catch(err){if(!err instanceof RangeError){throw err}throw"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."}try{table.set(ret,func)}catch(err){if(!err instanceof TypeError){throw err}assert(typeof sig!=="undefined","Missing signature argument to addFunction");var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}return ret}function removeFunctionWasm(index){}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];var WebAssembly={Memory:function(opts){return{buffer:new ArrayBuffer(opts["initial"]*65536),grow:function(amount){var ret=__growWasmMemory(amount);return ret}}},Table:function(opts){var ret=new Array(opts["initial"]);ret.grow=function(by){if(ret.length>=288+0){abort("Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.")}ret.push(null)};ret.set=function(i,func){ret[i]=func};ret.get=function(i){return ret[i]};return ret},Module:function(binary){return{}},Instance:function(module,info){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(i>2]=10456;b=q[a+32>>2];if(b){q[a+36>>2]=b;ij(b)}b=q[a+20>>2];if(b){q[a+24>>2]=b;ij(b)}d=q[a+8>>2];if(d){b=d;f=a+12|0;c=q[f>>2];e=b;a:{if((b|0)==(c|0)){break a}while(1){c=c+ -4|0;b=q[c>>2];q[c>>2]=0;if(b){n[q[q[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}e=q[a+8>>2]}b=e;q[f>>2]=d;ij(b)}return a|0}function ga(a){a=a|0;var g=0,h=0,i=0,j=0,k=0;q[a>>2]=10456;g=q[a+32>>2];if(g){q[a+36>>2]=g;ij(g)}g=q[a+20>>2];if(g){q[a+24>>2]=g;ij(g)}i=q[a+8>>2];if(i){g=i;k=a+12|0;h=q[k>>2];j=g;a:{if((g|0)==(h|0)){break a}while(1){h=h+ -4|0;g=q[h>>2];q[h>>2]=0;if(g){n[q[q[g>>2]+4>>2]](g)}if((h|0)!=(i|0)){continue}break}j=q[a+8>>2]}g=j;q[k>>2]=i;ij(g)}ij(a)}function ha(a){a=a|0;return 0}function ia(a){a=a|0;return 1}function ja(a,l){a=a|0;l=l|0;return 1}function ka(a){q[a>>2]=0;q[a+4>>2]=0;q[a+8>>2]=0;return a}function la(a,l,m){var n=0,p=0,r=0,s=0,t=0,u=0;a:{r=m-l|0;p=q[a+8>>2];n=q[a>>2];b:{if(r>>>0<=p-n>>2>>>0){p=q[a+4>>2];t=p-n>>2;s=t+l|0;u=r>>>0>t>>>0?s:m;if((u|0)!=(l|0)){while(1){q[n>>2]=o[l|0];n=n+4|0;l=l+1|0;if((u|0)!=(l|0)){continue}break}}if(r>>>0>t>>>0){if((m|0)==(u|0)){break b}while(1){q[p>>2]=o[s|0];p=p+4|0;q[a+4>>2]=p;s=s+1|0;if((s|0)!=(m|0)){continue}break}break b}q[a+4>>2]=n;return}if(n){q[a+4>>2]=n;ij(n);q[a+8>>2]=0;q[a>>2]=0;q[a+4>>2]=0;p=0}if(r>>>0>=1073741824){break a}n=p>>1;n=p>>2>>>0<536870911?n>>>0>>0?r:n:1073741823;if(n>>>0>=1073741824){break a}p=n<<2;n=ui(p);q[a>>2]=n;r=a+4|0;q[r>>2]=n;q[a+8>>2]=n+p;if((l|0)==(m|0)){break b}while(1){q[n>>2]=o[l|0];n=n+4|0;q[r>>2]=n;l=l+1|0;if((m|0)!=(l|0)){continue}break}}return}Gi();F()}function ma(a){a=a|0;return a|0}function na(a,l,m){var o=0,v=0,w=0;o=T-16|0;T=o;a:{b:{if(!a|!m){break b}q[o+8>>2]=0;q[o>>2]=0;q[o+4>>2]=0;if(l){if(l>>>0>=1073741824){break a}w=l<<2;v=ui(w);q[o>>2]=v;l=v+(l<<2)|0;q[o+8>>2]=l;oj(v,m,w);q[o+4>>2]=l}v=Ra(a,o);a=q[o>>2];if(!a){break b}q[o+4>>2]=a;ij(a)}T=o+16|0;return v}Gi();F()}function oa(a,l,m,x){var y=0,z=0,A=0;y=T-16|0;T=y;z=-1;a:{b:{if(!a|!x){break b}q[y+8>>2]=0;q[y>>2]=0;q[y+4>>2]=0;l=w(l,m);if(l){if(l>>>0>=1073741824){break a}A=l<<2;z=ui(A);q[y>>2]=z;l=z+(l<<2)|0;q[y+8>>2]=l;oj(z,x,A);q[y+4>>2]=l}z=pa(a,m,y);a=q[y>>2];if(!a){break b}q[y+4>>2]=a;ij(a)}T=y+16|0;return z}Gi();F()}function pa(a,l,m){var x=0,B=0,C=0,D=0,E=0,F=0;x=T-32|0;T=x;C=-1;a:{if(!l){break a}b:{if(q[a+12>>2]!=q[a+8>>2]){break b}B=ui(96);D=ub(B);q[x+24>>2]=B;wb(D,l<<24>>24,0);q[x+16>>2]=q[x+24>>2];q[x+24>>2]=0;Tg(a,x+16|0);B=q[x+16>>2];q[x+16>>2]=0;if(B){qa(B)}q[a+80>>2]=(q[m+4>>2]-q[m>>2]>>2>>>0)/(l>>>0);B=q[x+24>>2];q[x+24>>2]=0;if(!B){break b}qa(B)}B=a+80|0;if((w(q[B>>2],l)|0)!=q[m+4>>2]-q[m>>2]>>2){break a}C=ui(96);D=ub(C);q[x+24>>2]=C;C=0;wb(D,l<<24>>24,q[B>>2]);if(q[B>>2]){E=a+80|0;while(1){B=C;D=q[x+24>>2];if(!r[D+84|0]){B=q[q[D+68>>2]+(C<<2)>>2]}F=B;B=q[D+40>>2];oj(q[q[D>>2]>>2]+w(F,B)|0,q[m>>2]+(w(l,C)<<2)|0,B);C=C+1|0;if(C>>>0>2]){continue}break}}q[x+8>>2]=q[x+24>>2];q[x+24>>2]=0;C=Tg(a,x+8|0);a=q[x+8>>2];q[x+8>>2]=0;if(a){qa(a)}a=q[x+24>>2];q[x+24>>2]=0;if(!a){break a}qa(a)}T=x+32|0;return C}function qa(a){var l=0,m=0;if(a){l=a+88|0;m=q[l>>2];q[l>>2]=0;if(m){l=q[m+8>>2];if(l){q[m+12>>2]=l;ij(l)}ij(m)}m=q[a+68>>2];if(m){q[a+72>>2]=m;ij(m)}l=a- -64|0;m=q[l>>2];q[l>>2]=0;if(m){l=q[m>>2];if(l){q[m+4>>2]=l;ij(l)}ij(m)}ij(a)}}function ra(a){var G=0,H=0,I=0,J=0,K=0;I=T-16|0;T=I;Ig(a);G=a+16|0;q[G>>2]=0;q[G+4>>2]=0;q[a+12>>2]=G;J=Ig(a+24|0);K=I+8|0;q[K>>2]=0;q[I>>2]=0;q[I+4>>2]=0;a=ui(32);q[I>>2]=a;q[I+4>>2]=20;q[I+8>>2]=-2147483616;o[a+20|0]=0;G=r[1178]|r[1179]<<8|(r[1180]<<16|r[1181]<<24);o[a+16|0]=G;o[a+17|0]=G>>>8;o[a+18|0]=G>>>16;o[a+19|0]=G>>>24;G=r[1174]|r[1175]<<8|(r[1176]<<16|r[1177]<<24);H=r[1170]|r[1171]<<8|(r[1172]<<16|r[1173]<<24);o[a+8|0]=H;o[a+9|0]=H>>>8;o[a+10|0]=H>>>16;o[a+11|0]=H>>>24;o[a+12|0]=G;o[a+13|0]=G>>>8;o[a+14|0]=G>>>16;o[a+15|0]=G>>>24;G=r[1166]|r[1167]<<8|(r[1168]<<16|r[1169]<<24);H=r[1162]|r[1163]<<8|(r[1164]<<16|r[1165]<<24);o[a|0]=H;o[a+1|0]=H>>>8;o[a+2|0]=H>>>16;o[a+3|0]=H>>>24;o[a+4|0]=G;o[a+5|0]=G>>>8;o[a+6|0]=G>>>16;o[a+7|0]=G>>>24;Jg(J,I,1);if(o[I+11|0]<=-1){ij(q[I>>2])}q[K>>2]=0;q[I>>2]=0;q[I+4>>2]=0;a=ui(32);q[I>>2]=a;q[I+4>>2]=22;q[I+8>>2]=-2147483616;o[a+22|0]=0;G=r[1201]|r[1202]<<8|(r[1203]<<16|r[1204]<<24);H=r[1197]|r[1198]<<8|(r[1199]<<16|r[1200]<<24);o[a+14|0]=H;o[a+15|0]=H>>>8;o[a+16|0]=H>>>16;o[a+17|0]=H>>>24;o[a+18|0]=G;o[a+19|0]=G>>>8;o[a+20|0]=G>>>16;o[a+21|0]=G>>>24;G=r[1195]|r[1196]<<8|(r[1197]<<16|r[1198]<<24);H=r[1191]|r[1192]<<8|(r[1193]<<16|r[1194]<<24);o[a+8|0]=H;o[a+9|0]=H>>>8;o[a+10|0]=H>>>16;o[a+11|0]=H>>>24;o[a+12|0]=G;o[a+13|0]=G>>>8;o[a+14|0]=G>>>16;o[a+15|0]=G>>>24;G=r[1187]|r[1188]<<8|(r[1189]<<16|r[1190]<<24);H=r[1183]|r[1184]<<8|(r[1185]<<16|r[1186]<<24);o[a|0]=H;o[a+1|0]=H>>>8;o[a+2|0]=H>>>16;o[a+3|0]=H>>>24;o[a+4|0]=G;o[a+5|0]=G>>>8;o[a+6|0]=G>>>16;o[a+7|0]=G>>>24;Jg(J,I,1);if(o[I+11|0]<=-1){ij(q[I>>2])}T=I+16|0}function sa(a,L,M){var N=0,O=0,P=0,Q=0,R=0,S=0,U=0,V=0,W=0,X=0,Y=0,Z=0;O=T+ -64|0;T=O;a:{if(!L){break a}R=Eg(O+32|0);S=q[a+56>>2];b:{if((S|0)<1){break b}q[O+28>>2]=0;q[O+16>>2]=0;q[O+8>>2]=0;q[O+12>>2]=0;N=ui(32);q[O+8>>2]=N;q[O+12>>2]=17;q[O+16>>2]=-2147483616;o[N+17|0]=0;o[N+16|0]=r[1160];P=r[1156]|r[1157]<<8|(r[1158]<<16|r[1159]<<24);Q=r[1152]|r[1153]<<8|(r[1154]<<16|r[1155]<<24);o[N+8|0]=Q;o[N+9|0]=Q>>>8;o[N+10|0]=Q>>>16;o[N+11|0]=Q>>>24;o[N+12|0]=P;o[N+13|0]=P>>>8;o[N+14|0]=P>>>16;o[N+15|0]=P>>>24;P=r[1148]|r[1149]<<8|(r[1150]<<16|r[1151]<<24);Q=r[1144]|r[1145]<<8|(r[1146]<<16|r[1147]<<24);o[N|0]=Q;o[N+1|0]=Q>>>8;o[N+2|0]=Q>>>16;o[N+3|0]=Q>>>24;o[N+4|0]=P;o[N+5|0]=P>>>8;o[N+6|0]=P>>>16;o[N+7|0]=P>>>24;Jg(ta(a- -64|0,O+28|0),O+8|0,S);if(o[O+19|0]>-1){break b}ij(q[O+8>>2])}c:{if(q[a+60>>2]<1){break c}q[O+28>>2]=1;U=L+12|0;V=L+8|0;if((q[U>>2]-q[V>>2]|0)<5){break c}W=a- -64|0;Q=r[1144]|r[1145]<<8|(r[1146]<<16|r[1147]<<24);S=r[1148]|r[1149]<<8|(r[1150]<<16|r[1151]<<24);X=r[1152]|r[1153]<<8|(r[1154]<<16|r[1155]<<24);Y=r[1156]|r[1157]<<8|(r[1158]<<16|r[1159]<<24);Z=r[1160];while(1){q[O+16>>2]=0;q[O+8>>2]=0;q[O+12>>2]=0;N=ui(32);q[O+8>>2]=N;q[O+12>>2]=17;q[O+16>>2]=-2147483616;o[N+17|0]=0;o[N+16|0]=Z;P=X;o[N+8|0]=P;o[N+9|0]=P>>>8;o[N+10|0]=P>>>16;o[N+11|0]=P>>>24;P=Y;o[N+12|0]=P;o[N+13|0]=P>>>8;o[N+14|0]=P>>>16;o[N+15|0]=P>>>24;P=Q;o[N|0]=P;o[N+1|0]=P>>>8;o[N+2|0]=P>>>16;o[N+3|0]=P>>>24;P=S;o[N+4|0]=P;o[N+5|0]=P>>>8;o[N+6|0]=P>>>16;o[N+7|0]=P>>>24;N=q[a+60>>2];Jg(ta(W,O+28|0),O+8|0,N);if(o[O+19|0]<=-1){ij(q[O+8>>2])}N=q[O+28>>2]+1|0;q[O+28>>2]=N;if((N|0)>2]-q[V>>2]>>2){continue}break}}Za(a,L);jg(O+8|0,a,a- -64|0,R);a=q[O+8>>2];if(o[O+23|0]<=-1){ij(q[O+12>>2])}N=0;if(!a){la(M,q[R>>2],q[R+4>>2]);N=q[R+4>>2]-q[R>>2]|0}a=q[R+12>>2];q[R+12>>2]=0;if(a){ij(a)}a=q[R>>2];if(!a){break a}q[R+4>>2]=a;ij(a)}T=O- -64|0;return N}function ta(a,L){var M=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;$=T-32|0;T=$;aa=a+16|0;_=q[aa>>2];a:{b:{if(!_){break b}ca=q[L>>2];M=aa;while(1){ba=q[_+16>>2]<(ca|0);M=ba?M:_;_=q[(ba<<2)+_>>2];if(_){continue}break}if((M|0)==(aa|0)){break b}if((ca|0)>=q[M+16>>2]){break a}}ca=Ig($+16|0);L=q[L>>2];ba=$+8|0;q[ba>>2]=0;q[ba+4>>2]=0;q[$>>2]=L;q[$+4>>2]=ba;M=q[ca>>2];da=ca+4|0;if((M|0)!=(da|0)){ea=$|4;while(1){L=M;_=M+16|0;wa(ea,ba,_,_);_=q[M+4>>2];c:{if(!_){M=q[L+8>>2];if((L|0)==q[M>>2]){break c}L=L+8|0;while(1){_=q[L>>2];L=_+8|0;M=q[_+8>>2];if((_|0)!=q[M>>2]){continue}break}break c}while(1){M=_;_=q[M>>2];if(_){continue}break}}if((M|0)!=(da|0)){continue}break}}L=a+16|0;_=q[L>>2];d:{if(_){aa=q[$>>2];while(1){M=q[_+16>>2];e:{if((aa|0)<(M|0)){M=q[_>>2];if(M){break e}L=_;break d}if((M|0)>=(aa|0)){break d}L=_+4|0;M=q[_+4>>2];if(!M){break d}_=L}L=_;_=M;continue}}_=aa;L=_}M=q[L>>2];if(!M){M=ui(32);q[M+16>>2]=q[$>>2];q[M+20>>2]=q[$+4>>2];aa=M+24|0;da=q[$+8>>2];q[aa>>2]=da;ea=q[$+12>>2];q[M+28>>2]=ea;f:{if(!ea){q[M+20>>2]=aa;break f}q[da+8>>2]=aa;q[$+8>>2]=0;q[$+12>>2]=0;q[$+4>>2]=ba}q[M+8>>2]=_;q[M>>2]=0;q[M+4>>2]=0;q[L>>2]=M;aa=q[q[a+12>>2]>>2];_=M;g:{if(!aa){break g}q[a+12>>2]=aa;_=q[L>>2]}xa(q[a+16>>2],_);a=a+20|0;q[a>>2]=q[a>>2]+1}va($|4,q[$+8>>2]);va(ca,q[ca+4>>2])}T=$+32|0;return M+20|0}function ua(a,L){if(L){ua(a,q[L>>2]);ua(a,q[L+4>>2]);va(L+20|0,q[L+24>>2]);ij(L)}}function va(a,L){if(L){va(a,q[L>>2]);va(a,q[L+4>>2]);if(o[L+39|0]<=-1){ij(q[L+28>>2])}if(o[L+27|0]<=-1){ij(q[L+16>>2])}ij(L)}}function wa(a,L,fa,ga){var ha=0;ha=T-16|0;T=ha;fa=ya(a,L,ha+12|0,ha+8|0,fa);if(!q[fa>>2]){L=ui(40);yi(L+16|0,ga);yi(L+28|0,ga+12|0);q[L+8>>2]=q[ha+12>>2];q[L>>2]=0;q[L+4>>2]=0;q[fa>>2]=L;ga=L;L=q[q[a>>2]>>2];if(L){q[a>>2]=L;ga=q[fa>>2]}xa(q[a+4>>2],ga);a=a+8|0;q[a>>2]=q[a>>2]+1}T=ha+16|0}function xa(a,L){var T=0,fa=0,ga=0;T=(a|0)==(L|0);o[L+12|0]=T;a:{if(T){break a}while(1){fa=q[L+8>>2];if(r[fa+12|0]){break a}b:{T=q[fa+8>>2];ga=q[T>>2];if((ga|0)==(fa|0)){ga=q[T+4>>2];if(!(!ga|r[ga+12|0])){break b}c:{if(q[fa>>2]==(L|0)){L=fa;break c}L=q[fa+4>>2];ga=q[L>>2];q[fa+4>>2]=ga;a=L;if(ga){q[ga+8>>2]=fa;T=q[fa+8>>2]}q[a+8>>2]=T;a=q[fa+8>>2];q[((fa|0)==q[a>>2]?a:a+4|0)>>2]=L;q[L>>2]=fa;q[fa+8>>2]=L;T=q[L+8>>2]}o[L+12|0]=1;o[T+12|0]=0;a=q[T>>2];L=q[a+4>>2];q[T>>2]=L;if(L){q[L+8>>2]=T}q[a+8>>2]=q[T+8>>2];L=q[T+8>>2];q[(q[L>>2]==(T|0)?L:L+4|0)>>2]=a;q[a+4>>2]=T;q[T+8>>2]=a;return}if(!(r[ga+12|0]|!ga)){break b}d:{if(q[fa>>2]!=(L|0)){L=fa;break d}ga=q[L+4>>2];q[fa>>2]=ga;a=L;if(ga){q[ga+8>>2]=fa;T=q[fa+8>>2]}q[a+8>>2]=T;a=q[fa+8>>2];q[((fa|0)==q[a>>2]?a:a+4|0)>>2]=L;q[L+4>>2]=fa;q[fa+8>>2]=L;T=q[L+8>>2]}o[L+12|0]=1;o[T+12|0]=0;a=q[T+4>>2];L=q[a>>2];q[T+4>>2]=L;if(L){q[L+8>>2]=T}q[a+8>>2]=q[T+8>>2];L=q[T+8>>2];q[(q[L>>2]==(T|0)?L:L+4|0)>>2]=a;q[a>>2]=T;q[T+8>>2]=a;break a}L=ga+12|0;o[fa+12|0]=1;o[T+12|0]=(a|0)==(T|0);o[L|0]=1;L=T;if((L|0)!=(a|0)){continue}break}}}function ya(a,L,ia,ja,ka){var la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0;a:{b:{c:{d:{e:{ta=a+4|0;f:{if((ta|0)==(L|0)){break f}la=L+16|0;na=r[L+27|0];ua=na<<24>>24;ma=(ua|0)<0;oa=r[ka+11|0];pa=oa<<24>>24;qa=(pa|0)<0;ra=ma?q[L+20>>2]:na;oa=qa?q[ka+4>>2]:oa;sa=ra>>>0>>0;g:{na=sa?ra:oa;if(na){qa=qa?q[ka>>2]:ka;ma=ma?q[la>>2]:la;va=yh(qa,ma,na);if(va){break g}}if(oa>>>0>>0){break f}if(!na){break d}qa=(pa|0)<0?q[ka>>2]:ka;ma=(ua|0)<0?q[la>>2]:la;break e}if((va|0)>-1){break e}}na=q[L>>2];h:{i:{if(q[a>>2]==(L|0)){la=L;break i}j:{if(!na){ja=L;while(1){la=q[ja+8>>2];oa=q[la>>2]==(ja|0);ja=la;if(oa){continue}break}break j}ja=na;while(1){la=ja;ja=q[la+4>>2];if(ja){continue}break}}ma=r[ka+11|0];ja=ma<<24>>24<0;pa=r[la+27|0];oa=pa<<24>>24<0;k:{ma=ja?q[ka+4>>2]:ma;pa=oa?q[la+20>>2]:pa;qa=ma>>>0>>0?ma:pa;if(qa){ra=la+16|0;ja=yh(oa?q[ra>>2]:ra,ja?q[ka>>2]:ka,qa);if(ja){break k}}if(pa>>>0>>0){break i}break h}if((ja|0)>-1){break h}}if(!na){q[ia>>2]=L;return L}q[ia>>2]=la;return la+4|0}return za(a,ia,ka)}la=yh(ma,qa,na);if(la){break c}}if(sa){break b}break a}if((la|0)>-1){break a}}qa=L+4|0;na=q[qa>>2];l:{if(na){la=na;while(1){ja=la;la=q[la>>2];if(la){continue}break}break l}ja=q[L+8>>2];if(q[ja>>2]==(L|0)){break l}la=L+8|0;while(1){ma=q[la>>2];la=ma+8|0;ja=q[ma+8>>2];if((ma|0)!=q[ja>>2]){continue}break}}m:{n:{if((ja|0)==(ta|0)){break n}ma=r[ja+27|0];la=ma<<24>>24<0;o:{ma=la?q[ja+20>>2]:ma;ra=ma>>>0>>0?ma:oa;if(ra){sa=(pa|0)<0?q[ka>>2]:ka;pa=ja+16|0;la=yh(sa,la?q[pa>>2]:pa,ra);if(la){break o}}if(oa>>>0>>0){break n}break m}if((la|0)>-1){break m}}if(!na){q[ia>>2]=L;return qa}q[ia>>2]=ja;return ja}return za(a,ia,ka)}q[ia>>2]=L;q[ja>>2]=L;return ja}function za(a,L,ia){var ja=0,ka=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0;a:{ja=a+4|0;a=q[ja>>2];if(a){wa=r[ia+11|0];xa=wa<<24>>24<0;wa=xa?q[ia+4>>2]:wa;Aa=xa?q[ia>>2]:ia;while(1){ia=a+16|0;ka=r[a+27|0];xa=ka<<24>>24<0;ya=xa?q[a+20>>2]:ka;Ba=ya>>>0>>0;b:{c:{d:{e:{f:{g:{h:{ka=Ba?ya:wa;if(ka){za=xa?q[ia>>2]:ia;Ca=yh(Aa,za,ka);if(Ca){break h}}if(wa>>>0>>0){break g}if(!ka){break e}za=xa?q[ia>>2]:ia;break f}if((Ca|0)>-1){break f}}ia=q[a>>2];if(ia){break b}q[L>>2]=a;return a}ia=yh(za,Aa,ka);if(ia){break d}}if(Ba){break c}break a}if((ia|0)>-1){break a}}ja=a+4|0;ia=q[a+4>>2];if(!ia){break a}a=ja}ja=a;a=ia;continue}}q[L>>2]=ja;return ja}q[L>>2]=a;return ja}function Aa(){return ui(1)|0}function Ba(a,q,L,ia){a=a|0;q=q|0;L=L|0;ia=ia|0;return na(q,L,ia)|0}function Ca(a,q,L,ia,Da){a=a|0;q=q|0;L=L|0;ia=ia|0;Da=Da|0;return oa(q,L,ia,Da)|0}function Da(a){a=a|0;if(a){ij(a)}}function Ea(){return ka(ui(12))|0}function Fa(a,L){a=a|0;L=L|0;return q[q[a>>2]+(L<<2)>>2]}function Ga(a){a=a|0;return q[a+4>>2]-q[a>>2]>>2}function Ha(a){a=a|0;var L=0;if(a){L=q[a>>2];if(L){q[a+4>>2]=L;ij(L)}ij(a)}}function Ia(){var a=0;a=ui(100);ig(a);q[a>>2]=1032;q[a+56>>2]=-1;q[a+60>>2]=-1;ra(a- -64|0);return a|0}function Ja(ia,Da){ia=ia|0;Da=Da|0;q[ia+56>>2]=Da}function Ka(ia,Da){ia=ia|0;Da=Da|0;q[ia+60>>2]=Da}function La(q,ia,Da){q=q|0;ia=ia|0;Da=Da|0;return sa(q,ia,Da)|0}function Ma(q){q=q|0;if(q){ij(Na(q))}}function Na(ia){var Da=0,Ea=0,Fa=0,Ga=0,Ha=0;va(ia+88|0,q[ia+92>>2]);ua(ia+76|0,q[ia+80>>2]);va(ia- -64|0,q[ia+68>>2]);q[ia>>2]=10456;Da=q[ia+32>>2];if(Da){q[ia+36>>2]=Da;ij(Da)}Da=q[ia+20>>2];if(Da){q[ia+24>>2]=Da;ij(Da)}Fa=q[ia+8>>2];if(Fa){Da=Fa;Ha=ia+12|0;Ea=q[Ha>>2];Ga=Da;a:{if((Da|0)==(Ea|0)){break a}while(1){Ea=Ea+ -4|0;Da=q[Ea>>2];q[Ea>>2]=0;if(Da){n[q[q[Da>>2]+4>>2]](Da)}if((Ea|0)!=(Fa|0)){continue}break}Ga=q[ia+8>>2]}Da=Ga;q[Ha>>2]=Fa;ij(Da)}return ia}function Oa(){var ia=0;ia=ui(84);q[ia>>2]=12888;pj(ia+4|0,0,80);q[ia>>2]=1216;return ia|0}function Pa(Ia){Ia=Ia|0;return q[Ia+80>>2]}function Qa(Ia){Ia=Ia|0;if(Ia){n[q[q[Ia>>2]+4>>2]](Ia)}}function Ra(Ia,Ja){var Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0;Ka=T-16|0;T=Ka;Na=q[Ja+4>>2]-q[Ja>>2]|0;Oa=Na>>2;a:{b:{if((q[Ia+12>>2]-q[Ia+8>>2]|0)>=1){if(q[Sg(Ia)+80>>2]){break a}if(q[Ia+80>>2]==(Oa|0)){break b}break a}q[Ia+80>>2]=Oa}La=ui(96);Ma=ub(La);q[Ka+8>>2]=La;La=0;wb(Ma,1,Oa);c:{if(!Na){Ma=q[Ka+8>>2];break c}Ma=q[Ka+8>>2];Qa=Ma+68|0;Ra=Ma+40|0;while(1){Na=La;Pa=q[q[Ma>>2]>>2];if(!r[Ma+84|0]){Na=q[q[Qa>>2]+(La<<2)>>2]}Sa=Pa;Pa=q[Ra>>2];oj(Sa+w(Na,Pa)|0,q[Ja>>2]+(La<<2)|0,Pa);La=La+1|0;if(La>>>0>>0){continue}break}}q[Ka>>2]=Ma;q[Ka+8>>2]=0;n[q[q[Ia>>2]+8>>2]](Ia,0,Ka);Ia=q[Ka>>2];q[Ka>>2]=0;if(Ia){qa(Ia)}Ia=q[Ka+8>>2];q[Ka+8>>2]=0;if(Ia){qa(Ia)}La=1}T=Ka+16|0;return La}function Sa(Ia){Ia=Ia|0;var Ja=0,Ua=0,Va=0,Wa=0,Xa=0;q[Ia>>2]=12888;Ja=q[Ia+68>>2];if(Ja){q[Ia+72>>2]=Ja;ij(Ja)}Ja=q[Ia+56>>2];if(Ja){q[Ia+60>>2]=Ja;ij(Ja)}Ja=q[Ia+44>>2];if(Ja){q[Ia+48>>2]=Ja;ij(Ja)}Ja=q[Ia+32>>2];if(Ja){q[Ia+36>>2]=Ja;ij(Ja)}Ja=q[Ia+20>>2];if(Ja){q[Ia+24>>2]=Ja;ij(Ja)}Va=q[Ia+8>>2];if(Va){Ja=Va;Xa=Ia+12|0;Ua=q[Xa>>2];Wa=Ja;a:{if((Ja|0)==(Ua|0)){break a}while(1){Ua=Ua+ -4|0;Ja=q[Ua>>2];q[Ua>>2]=0;if(Ja){qa(Ja)}if((Ua|0)!=(Va|0)){continue}break}Wa=q[Ia+8>>2]}Ja=Wa;q[Xa>>2]=Va;ij(Ja)}Ja=q[Ia+4>>2];q[Ia+4>>2]=0;if(Ja){Ta(Ja)}return Ia|0}function Ta(Ia){var Ta=0,Ya=0,Za=0,_a=0,$a=0;if(Ia){Za=q[Ia+24>>2];if(Za){Ta=Za;$a=Ia+28|0;Ya=q[$a>>2];_a=Ta;a:{if((Ya|0)==(Ta|0)){break a}while(1){Ya=Ya+ -4|0;Ta=q[Ya>>2];q[Ya>>2]=0;if(Ta){Va(Ta+12|0,q[Ta+16>>2]);Wa(Ta,q[Ta+4>>2]);ij(Ta)}if((Ya|0)!=(Za|0)){continue}break}_a=q[Ia+24>>2]}Ta=_a;q[$a>>2]=Za;ij(Ta)}Va(Ia+12|0,q[Ia+16>>2]);Wa(Ia,q[Ia+4>>2]);ij(Ia)}}function Ua(q){q=q|0;Sa(q);ij(q)}function Va(Ia,ab){var bb=0;if(ab){Va(Ia,q[ab>>2]);Va(Ia,q[ab+4>>2]);bb=ab+28|0;Ia=q[bb>>2];q[bb>>2]=0;if(Ia){Va(Ia+12|0,q[Ia+16>>2]);Wa(Ia,q[Ia+4>>2]);ij(Ia)}if(o[ab+27|0]<=-1){ij(q[ab+16>>2])}ij(ab)}}function Wa(Ia,ab){if(ab){Wa(Ia,q[ab>>2]);Wa(Ia,q[ab+4>>2]);Ia=q[ab+28>>2];if(Ia){q[ab+32>>2]=Ia;ij(Ia)}if(o[ab+27|0]<=-1){ij(q[ab+16>>2])}ij(ab)}}function Xa(Ia,ab){Ia=Ia|0;ab=ab|0;var cb=0;ab=q[ab+88>>2];if(!(!ab|q[ab>>2]!=2)){cb=Ia;Ia=q[ab+8>>2];q[cb+4>>2]=r[Ia|0]|r[Ia+1|0]<<8|(r[Ia+2|0]<<16|r[Ia+3|0]<<24);cb=1}return cb|0}function Ya(Ia,ab){Ia=Ia|0;ab=ab|0;var db=0,eb=0;q[ab>>2]=2;db=q[ab+8>>2];eb=q[ab+12>>2]-db|0;if(eb>>>0<=4294967291){ab=ab+8|0;Cg(ab,eb+4|0);db=q[ab>>2]}ab=db+eb|0;Ia=r[Ia+4|0]|r[Ia+5|0]<<8|(r[Ia+6|0]<<16|r[Ia+7|0]<<24);o[ab|0]=Ia;o[ab+1|0]=Ia>>>8;o[ab+2|0]=Ia>>>16;o[ab+3|0]=Ia>>>24}function Za(Ia,ab){q[Ia+4>>2]=ab}function _a(Ia,ab){var fb=0,gb=0;fb=T-16|0;T=fb;Ia=q[Ia+4>>2];gb=0;a:{if((Ia|0)==-1){break a}o[fb+15|0]=Ia;Ia=q[ab+20>>2];if((Ia|0)<0?1:(Ia|0)<=0?t[ab+16>>2]>0?0:1:0){$a(ab,q[ab+4>>2],fb+15|0,fb+16|0)}gb=1}Ia=gb;T=fb+16|0;return Ia}function $a(Ia,ab,hb,ib){var jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0;kb=ib-hb|0;if((kb|0)<1){return}a:{nb=q[Ia+8>>2];mb=q[Ia+4>>2];if((kb|0)<=(nb-mb|0)){ob=mb-ab|0;if((kb|0)<=(ob|0)){lb=mb;nb=ib;break a}lb=mb;nb=hb+ob|0;if((nb|0)!=(ib|0)){pb=Ia+4|0;jb=nb;while(1){o[lb|0]=r[jb|0];lb=q[pb>>2]+1|0;q[pb>>2]=lb;jb=jb+1|0;if((jb|0)!=(ib|0)){continue}break}}if((ob|0)>=1){break a}return}lb=kb;kb=q[Ia>>2];lb=lb+(mb-kb|0)|0;if((lb|0)>-1){mb=nb-kb|0;nb=mb<<1;nb=mb>>>0<1073741823?nb>>>0>>0?lb:nb:2147483647;mb=0;b:{if(!nb){break b}mb=ui(nb)}lb=mb+(ab-kb|0)|0;c:{if((hb|0)==(ib|0)){jb=lb;break c}jb=lb;while(1){o[jb|0]=r[hb|0];jb=jb+1|0;hb=hb+1|0;if((ib|0)!=(hb|0)){continue}break}kb=q[Ia>>2]}hb=ab-kb|0;ib=lb-hb|0;if((hb|0)>=1){oj(ib,kb,hb)}lb=mb+nb|0;mb=Ia+4|0;hb=q[mb>>2]-ab|0;if((hb|0)>=1){jb=oj(jb,ab,hb)+hb|0;kb=q[Ia>>2]}q[Ia>>2]=ib;q[Ia+8>>2]=lb;q[mb>>2]=jb;if(kb){ij(kb)}return}Gi();F()}ib=lb-(ab+kb|0)|0;jb=lb-kb|0;if(jb>>>0>>0){Ia=Ia+4|0;kb=lb;while(1){o[kb|0]=r[jb|0];kb=q[Ia>>2]+1|0;q[Ia>>2]=kb;jb=jb+1|0;if((mb|0)!=(jb|0)){continue}break}}if(ib){qj(lb-ib|0,ab,ib)}if((hb|0)==(nb|0)){return}jb=ab;while(1){o[jb|0]=r[hb|0];jb=jb+1|0;hb=hb+1|0;if((nb|0)!=(hb|0)){continue}break}}function ab(Ia,ab,hb,ib,qb){var rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0;rb=T-48|0;T=rb;sb=ib+4|0;pb(rb+40|0,q[sb>>2]-q[ib>>2]>>2,2,qb,hb);qb=q[rb+40>>2];tb=q[qb+48>>2];ub=q[q[qb>>2]>>2];q[rb+16>>2]=-1;q[rb+20>>2]=-1;q[rb+8>>2]=-1;q[rb+12>>2]=-1;ab=q[ab+4>>2];a:{if(ab+ -2>>>0<=28){q[rb+8>>2]=ab;ab=-1<>2]=ab^-1;ab=-2-ab|0;q[rb+16>>2]=ab;q[rb+20>>2]=(ab|0)/2;wb=Ia;Ia=q[ib>>2];if((Ia|0)!=q[sb>>2]){tb=tb+ub|0;qb=0;ub=hb+68|0;ab=0;while(1){Ia=q[(ab<<2)+Ia>>2];xb=rb+28|0;yb=q[q[hb>>2]>>2];zb=q[hb+48>>2];sb=q[hb+44>>2];vb=q[hb+40>>2];Ab=vb;if(!r[hb+84|0]){Ia=q[q[ub>>2]+(Ia<<2)>>2]}Ia=Nj(Ab,sb,Ia,0)+zb|0;oj(xb,Ia+yb|0,vb);bb(rb+8|0,rb+28|0,rb+4|0,rb);Ia=qb<<2;q[Ia+tb>>2]=q[rb+4>>2];q[tb+(Ia|4)>>2]=q[rb>>2];qb=qb+2|0;ab=ab+1|0;Ia=q[ib>>2];if(ab>>>0>2]-Ia>>2>>>0){continue}break}qb=q[rb+40>>2]}q[wb>>2]=qb;q[rb+40>>2]=0;break a}q[Ia>>2]=0;q[rb+40>>2]=0;if(!qb){break a}qa(qb)}T=rb+48|0}function bb(Ia,ab,hb,ib){var qb=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0;Eb=+u[ab>>2];Fb=+u[ab+4>>2];Ib=+u[ab+8>>2];Db=y(Eb)+y(Fb)+y(Ib);a:{if(!(Db>1e-6)){Eb=1;Fb=0;Bb=0;break a}Db=1/Db;Fb=Db*Fb;Eb=Db*Eb;Bb=Db*Ib<0}Db=Fb;Cb=q[Ia+12>>2];Fb=+(Cb|0);Db=C(Db*Fb+.5);b:{if(y(Db)<2147483648){ab=~~Db;break b}ab=-2147483648}Jb=(ab|0)<0?ab:0-ab|0;Gb=Cb;Eb=C(Eb*Fb+.5);c:{if(y(Eb)<2147483648){qb=~~Eb;break c}qb=-2147483648}Hb=qb>>31;Gb=Jb+(Gb-(qb+Hb^Hb)|0)|0;Hb=(Gb|0)<0?0:Gb;Bb=Bb?0-Hb|0:Hb;ab=ab+(Gb>>31&((ab|0)>0?Gb:0-Gb|0))|0;d:{if((qb|0)>=0){qb=ab+Cb|0;ab=Cb+Bb|0;break d}e:{if((ab|0)<=-1){qb=Bb>>31;qb=qb+Bb^qb;break e}qb=Bb>>31;qb=q[Ia+8>>2]-(qb+Bb^qb)|0}if((Bb|0)<=-1){Bb=ab;ab=ab>>31;ab=Bb+ab^ab;break d}Bb=ab;ab=ab>>31;ab=q[Ia+8>>2]-(Bb+ab^ab)|0}Ia=q[Ia+8>>2];f:{if(!(ab|qb)){ab=Ia;qb=ab;break f}if(!((Ia|0)!=(ab|0)|qb)){qb=ab;break f}if(!((Ia|0)!=(qb|0)|ab)){ab=qb;break f}if(!((Cb|0)>=(ab|0)|qb)){ab=(Cb<<1)-ab|0;qb=0;break f}if(!((Ia|0)!=(qb|0)|(Cb|0)<=(ab|0))){ab=(Cb<<1)-ab|0;break f}if(!((Ia|0)!=(ab|0)|(Cb|0)<=(qb|0))){qb=(Cb<<1)-qb|0;break f}if(ab){break f}ab=0;if((Cb|0)>=(qb|0)){break f}qb=(Cb<<1)-qb|0}q[hb>>2]=qb;q[ib>>2]=ab}function cb(q){q=q|0;ij(q)}function db(q){q=q|0;return 2}function eb(Ia,ab){Ia=Ia|0;ab=ab|0;var hb=0,ib=0,Kb=0,Lb=0,Mb=0,Nb=0;Kb=q[ab+88>>2];if(!(!Kb|q[Kb>>2]!=1)){Lb=Kb+8|0;Kb=q[Lb>>2];hb=Kb;q[Ia+4>>2]=r[hb|0]|r[hb+1|0]<<8|(r[hb+2|0]<<16|r[hb+3|0]<<24);Mb=Ia+8|0;Nb=q[Ia+8>>2];ib=q[Ia+12>>2]-Nb>>2;hb=o[ab+24|0];a:{if(ib>>>0>>0){fb(Mb,hb-ib|0);Kb=q[Lb>>2];hb=r[ab+24|0];break a}if(ib>>>0<=hb>>>0){break a}q[Ia+12>>2]=Nb+(hb<<2)}Lb=1;ab=Kb;ib=r[ab+4|0]|r[ab+5|0]<<8|(r[ab+6|0]<<16|r[ab+7|0]<<24);if(hb<<24>>24>=1){Nb=hb&255;Mb=q[Mb>>2];ab=0;hb=4;while(1){q[Mb+(ab<<2)>>2]=ib;hb=hb+4|0;ib=Kb+hb|0;ib=r[ib|0]|r[ib+1|0]<<8|(r[ib+2|0]<<16|r[ib+3|0]<<24);ab=ab+1|0;if(ab>>>0>>0){continue}break}}q[Ia+20>>2]=ib}return Lb|0}function fb(Ia,ab){var Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0;Pb=q[Ia+8>>2];Qb=Ia+4|0;Ob=q[Qb>>2];if(Pb-Ob>>2>>>0>=ab>>>0){Ia=ab<<2;Vb=Qb,Wb=pj(Ob,0,Ia)+Ia|0,q[Vb>>2]=Wb;return}a:{Qb=q[Ia>>2];Sb=Ob-Qb|0;Ob=Sb>>2;Rb=Ob+ab|0;if(Rb>>>0<1073741824){Ub=Ob<<2;Pb=Pb-Qb|0;Ob=Pb>>1;Pb=Pb>>2>>>0<536870911?Ob>>>0>>0?Rb:Ob:1073741823;Ob=0;b:{if(!Pb){break b}if(Pb>>>0>=1073741824){break a}Tb=ui(Pb<<2);Ob=Tb}pj(Ub+Ob|0,0,ab<<2);ab=Ob+(Rb<<2)|0;Rb=Ob+(Pb<<2)|0;if((Sb|0)>=1){oj(Tb,Qb,Sb)}q[Ia>>2]=Ob;q[Ia+8>>2]=Rb;q[Ia+4>>2]=ab;if(Qb){ij(Qb)}return}Gi();F()}ob(1472);F()}function gb(Ia,ab){Ia=Ia|0;ab=ab|0;var Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0;q[ab>>2]=1;_b=ab+8|0;Xb=q[ab+8>>2];Yb=q[ab+12>>2]-Xb|0;if(Yb>>>0<=4294967291){Cg(_b,Yb+4|0);Xb=q[_b>>2]}Yb=Xb+Yb|0;Xb=r[Ia+4|0]|r[Ia+5|0]<<8|(r[Ia+6|0]<<16|r[Ia+7|0]<<24);o[Yb|0]=Xb;o[Yb+1|0]=Xb>>>8;o[Yb+2|0]=Xb>>>16;o[Yb+3|0]=Xb>>>24;Xb=q[Ia+8>>2];if((Xb|0)!=q[Ia+12>>2]){ac=ab+12|0;while(1){Yb=($b<<2)+Xb|0;Xb=q[ab+8>>2];Zb=q[ac>>2]-Xb|0;if(Zb>>>0<=4294967291){Cg(_b,Zb+4|0);Xb=q[_b>>2]}Zb=Xb+Zb|0;Xb=r[Yb|0]|r[Yb+1|0]<<8|(r[Yb+2|0]<<16|r[Yb+3|0]<<24);o[Zb|0]=Xb;o[Zb+1|0]=Xb>>>8;o[Zb+2|0]=Xb>>>16;o[Zb+3|0]=Xb>>>24;$b=$b+1|0;Xb=q[Ia+8>>2];if($b>>>0>2]-Xb>>2>>>0){continue}break}}Xb=q[ab+12>>2];ab=q[ab+8>>2];Xb=Xb-ab|0;if(Xb>>>0<=4294967291){Cg(_b,Xb+4|0);ab=q[_b>>2]}ab=ab+Xb|0;Ia=r[Ia+20|0]|r[Ia+21|0]<<8|(r[Ia+22|0]<<16|r[Ia+23|0]<<24);o[ab|0]=Ia;o[ab+1|0]=Ia>>>8;o[ab+2|0]=Ia>>>16;o[ab+3|0]=Ia>>>24}function hb(Ia,ab,bc,cc,dc){q[Ia+4>>2]=ab;ib(Ia+8|0,bc,(cc<<2)+bc|0);u[Ia+20>>2]=dc}function ib(Ia,ab,bc){var cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0;a:{fc=bc-ab|0;ec=fc>>2;cc=q[Ia+8>>2];dc=q[Ia>>2];b:{if(ec>>>0<=cc-dc>>2>>>0){cc=q[Ia+4>>2]-dc|0;fc=cc>>2;cc=ec>>>0>fc>>>0?ab+cc|0:bc;gc=cc-ab|0;if(gc){qj(dc,ab,gc)}if(ec>>>0>fc>>>0){ab=bc-cc|0;if((ab|0)<1){break b}Ia=Ia+4|0;oj(q[Ia>>2],cc,ab);q[Ia>>2]=ab+q[Ia>>2];return}q[Ia+4>>2]=dc+(gc>>2<<2);return}if(dc){q[Ia+4>>2]=dc;ij(dc);q[Ia+8>>2]=0;q[Ia>>2]=0;q[Ia+4>>2]=0;cc=0}if(ec>>>0>=1073741824){break a}bc=cc>>1;bc=cc>>2>>>0<536870911?bc>>>0>>0?ec:bc:1073741823;if(bc>>>0>=1073741824){break a}dc=bc<<2;bc=ui(dc);q[Ia>>2]=bc;ec=Ia+4|0;q[ec>>2]=bc;q[Ia+8>>2]=bc+dc;if((fc|0)<1){break b}hc=ec,ic=oj(bc,ab,fc)+fc|0,q[hc>>2]=ic}return}Gi();F()}function jb(Ia,ab,bc){var jc=0,kc=0,lc=0,mc=x(0),nc=0,oc=0,pc=0,qc=x(0),rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0;oc=T-16|0;T=oc;a:{if(q[Ia+4>>2]==-1){q[Ia+4>>2]=bc;lc=o[ab+24|0];q[Ia+20>>2]=0;q[oc+8>>2]=0;q[oc>>2]=0;q[oc+4>>2]=0;bc=0;if(lc){if((lc|0)<=-1){break a}bc=lc<<2;kc=ui(bc);q[oc>>2]=kc;q[oc+4>>2]=kc;nc=bc+kc|0;q[oc+8>>2]=nc;bc=pj(kc,0,bc);jc=lc;while(1){bc=bc+4|0;jc=jc+ -1|0;if(jc){continue}break}q[oc+4>>2]=bc}jc=q[Ia+8>>2];if(jc){q[Ia+12>>2]=jc;ij(jc);q[Ia+16>>2]=0;q[Ia+8>>2]=0;q[Ia+12>>2]=0}q[Ia+8>>2]=kc;q[Ia+16>>2]=nc;q[Ia+12>>2]=bc;bc=(lc&1073741823)!=(lc|0)?-1:lc<<2;pc=ui(bc);rc=ui(bc);jc=q[ab+48>>2];nc=q[ab>>2];bc=q[ab+40>>2];vc=oj(rc,jc+q[nc>>2]|0,bc);oj(kc,jc+q[nc>>2]|0,bc);xc=q[ab+44>>2];nc=q[ab+48>>2];wc=q[ab>>2];sc=q[ab+40>>2];yc=sc;tc=oj(pc,nc+q[wc>>2]|0,sc);jc=q[ab+80>>2];if(jc>>>0>=2){zc=(lc|0)<1;rc=1;ab=0;while(1){bc=q[wc>>2];pc=Nj(rc,ab,sc,xc)+nc|0;Ac=oj(vc,bc+pc|0,yc);if(!zc){Bc=q[Ia+8>>2];bc=0;while(1){uc=bc<<2;kc=uc+Bc|0;pc=uc+Ac|0;mc=u[pc>>2];if(!!(u[kc>>2]>mc)){u[kc>>2]=mc;mc=u[pc>>2]}pc=tc+uc|0;if(!!(u[pc>>2]>2]=mc}bc=bc+1|0;if((lc|0)!=(bc|0)){continue}break}}bc=rc+1|0;if(bc>>>0<1){ab=ab+1|0}rc=bc;if(!ab&bc>>>0>>0|ab>>>0<0){continue}break}}bc=0;b:{c:{if((lc|0)<=0){qc=u[Ia+20>>2];break c}nc=q[Ia+8>>2];while(1){kc=0;jc=bc<<2;ab=jc+nc|0;qc=u[ab>>2];if((q[ab>>2]&2139095040)==2139095040){break b}ab=jc+tc|0;mc=u[ab>>2];if((q[ab>>2]&2139095040)==2139095040){break b}mc=x(mc-qc);qc=u[Ia+20>>2];if(!!(mc>qc)){u[Ia+20>>2]=mc;qc=mc}bc=bc+1|0;if((lc|0)!=(bc|0)){continue}break}}kc=1;if(qc!=x(0)){break b}q[Ia+20>>2]=1065353216}ij(vc);ij(tc)}T=oc+16|0;return kc}Gi();F()}function kb(Ia,ab){var bc=0,Cc=0,Dc=0,Ec=0;Dc=T-16|0;T=Dc;Cc=q[Ia+4>>2];bc=0;a:{if((Cc|0)==-1){break a}bc=Dc;b:{c:{Ec=q[ab+20>>2];if((Ec|0)<0?1:(Ec|0)<=0?t[ab+16>>2]>0?0:1:0){Ec=ab+4|0;$a(ab,q[Ec>>2],q[Ia+8>>2],q[Ia+12>>2]);Cc=q[ab+20>>2];if((Cc|0)<0?1:(Cc|0)<=0?t[ab+16>>2]>=1?0:1:0){break c}Cc=q[Ia+4>>2]}o[bc+15|0]=Cc;break b}bc=Ia+20|0;$a(ab,q[Ec>>2],bc,bc+4|0);Cc=q[ab+20>>2];bc=q[ab+16>>2];o[Dc+15|0]=q[Ia+4>>2];if((Cc|0)>0?1:(Cc|0)>=0?bc>>>0<=0?0:1:0){break b}$a(ab,q[ab+4>>2],Dc+15|0,Dc+16|0)}bc=1}T=Dc+16|0;return bc}function lb(Ia,ab,Fc,Gc,Hc){var Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=x(0),Sc=0,Tc=0,Uc=x(0),Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0;Nc=T-16|0;T=Nc;Lc=Gc+4|0;Ic=o[Fc+24|0];pb(Ia,q[Lc>>2]-q[Gc>>2]>>2,Ic,Hc,Fc);Ia=q[Ia>>2];Mc=q[Ia+48>>2];Jc=q[ab+4>>2];Kc=q[q[Ia>>2]>>2];Hc=Nc+8|0;q[Hc>>2]=1065353216;u[Hc>>2]=x(-1<>2];Ia=ui((Ic&1073741823)!=(Ic|0)?-1:Ic<<2);Oc=q[Gc>>2];Gc=q[Lc>>2];if((Oc|0)!=(Gc|0)){Sc=Kc+Mc|0;Tc=Gc-Oc>>2;Uc=u[Hc>>2];Vc=q[Fc>>2];Hc=q[Fc+48>>2];Lc=q[Fc+44>>2];Mc=q[Fc+40>>2];Wc=Mc;Gc=0;Xc=r[Fc+84|0];Yc=Fc+68|0;Zc=(Ic|0)<1;_c=ab+8|0;while(1){ab=q[(Pc<<2)+Oc>>2];Fc=Ia;Qc=q[Vc>>2];Jc=Mc;Kc=Lc;if(!Xc){ab=q[q[Yc>>2]+(ab<<2)>>2]}ab=Nj(Jc,Kc,ab,0)+Hc|0;Jc=oj(Fc,ab+Qc|0,Wc);if(!Zc){Kc=q[_c>>2];Fc=0;while(1){Qc=Sc+(Gc<<2)|0;ab=Fc<<2;Rc=x(C(x(x(Uc*x(u[ab+Jc>>2]-u[ab+Kc>>2]))+x(.5))));a:{if(x(y(Rc))>2]=ab;Gc=Gc+1|0;Fc=Fc+1|0;if((Ic|0)!=(Fc|0)){continue}break}}Pc=Pc+1|0;if(Pc>>>0>>0){continue}break}}ij(Ia);T=Nc+16|0}function mb(Ia){Ia=Ia|0;var ab=0;q[Ia>>2]=1396;ab=q[Ia+8>>2];if(ab){q[Ia+12>>2]=ab;ij(ab)}return Ia|0}function nb(Ia){Ia=Ia|0;var Fc=0;q[Ia>>2]=1396;Fc=q[Ia+8>>2];if(Fc){q[Ia+12>>2]=Fc;ij(Fc)}ij(Ia)}function ob(Ia){var Gc=0;Gc=I(8)|0;q[Gc>>2]=13928;q[Gc>>2]=13972;vi(Gc+4|0,Ia);q[Gc>>2]=14020;J(Gc|0,14052,23);F()}function pb(Ia,Hc,$c,ad,bd){var cd=0,dd=0,ed=0;cd=T+ -64|0;T=cd;dd=rb(cd);bd=q[bd+56>>2];ed=$c<<24>>24;$c=w(Dg(6),$c);sb(dd,bd,0,ed,6,$c,$c>>31);$c=ui(96);bd=vb($c,dd);q[Ia>>2]=$c;xb(bd,Hc);Ia=q[Ia>>2];a:{if(ad){o[Ia+84|0]=0;$c=q[Ia+68>>2];Hc=q[Ia+72>>2]-$c>>2;if(Hc>>>0>>0){qb(Ia+68|0,ad-Hc|0,1540);break a}if(Hc>>>0<=ad>>>0){break a}q[Ia+72>>2]=$c+(ad<<2);break a}o[Ia+84|0]=1;q[Ia+72>>2]=q[Ia+68>>2]}T=cd- -64|0}function qb(Ia,Hc,$c){var ad=0,bd=0,fd=0,gd=0,hd=0,id=0;fd=q[Ia+8>>2];ad=q[Ia+4>>2];if(fd-ad>>2>>>0>=Hc>>>0){while(1){q[ad>>2]=q[$c>>2];ad=ad+4|0;Hc=Hc+ -1|0;if(Hc){continue}break}q[Ia+4>>2]=ad;return}a:{gd=q[Ia>>2];hd=ad-gd|0;id=hd>>2;ad=id+Hc|0;if(ad>>>0<1073741824){fd=fd-gd|0;bd=fd>>1;ad=fd>>2>>>0<536870911?bd>>>0>>0?ad:bd:1073741823;bd=0;b:{if(!ad){break b}if(ad>>>0>=1073741824){break a}bd=ui(ad<<2)}fd=bd+(ad<<2)|0;ad=bd+(id<<2)|0;while(1){q[ad>>2]=q[$c>>2];ad=ad+4|0;Hc=Hc+ -1|0;if(Hc){continue}break}if((hd|0)>=1){oj(bd,gd,hd)}q[Ia>>2]=bd;q[Ia+8>>2]=fd;q[Ia+4>>2]=ad;if(gd){ij(gd)}return}Gi();F()}ob(1544);F()}function rb(Ia){q[Ia+8>>2]=0;q[Ia+12>>2]=0;q[Ia>>2]=0;q[Ia+40>>2]=0;q[Ia+44>>2]=0;q[Ia+28>>2]=9;o[Ia+24|0]=1;q[Ia+56>>2]=-1;q[Ia+60>>2]=0;q[Ia+16>>2]=0;q[Ia+20>>2]=0;q[Ia+48>>2]=0;q[Ia+52>>2]=0;return Ia}function sb(Ia,Hc,$c,jd,kd,ld,md){var nd=0;q[Ia>>2]=$c;if($c){nd=q[$c+20>>2];q[Ia+8>>2]=q[$c+16>>2];q[Ia+12>>2]=nd;nd=q[$c+28>>2];q[Ia+16>>2]=q[$c+24>>2];q[Ia+20>>2]=nd}q[Ia+56>>2]=Hc;q[Ia+48>>2]=0;q[Ia+52>>2]=0;q[Ia+40>>2]=ld;q[Ia+44>>2]=md;o[Ia+32|0]=0;q[Ia+28>>2]=kd;o[Ia+24|0]=jd}function tb(Ia,Hc,$c,jd){var kd=0;q[Ia>>2]=Hc;kd=q[Hc+20>>2];q[Ia+8>>2]=q[Hc+16>>2];q[Ia+12>>2]=kd;kd=q[Hc+24>>2];Hc=q[Hc+28>>2];q[Ia+48>>2]=0;q[Ia+52>>2]=0;q[Ia+40>>2]=$c;q[Ia+44>>2]=jd;q[Ia+16>>2]=kd;q[Ia+20>>2]=Hc}function ub(Ia){rb(Ia);q[Ia+64>>2]=0;q[Ia+68>>2]=0;q[Ia+88>>2]=0;q[Ia+72>>2]=0;q[Ia+76>>2]=0;o[Ia+77|0]=0;o[Ia+78|0]=0;o[Ia+79|0]=0;o[Ia+80|0]=0;o[Ia+81|0]=0;o[Ia+82|0]=0;o[Ia+83|0]=0;o[Ia+84|0]=0;return Ia}function vb(Ia,Hc){var $c=0;$c=q[Hc+4>>2];q[Ia>>2]=q[Hc>>2];q[Ia+4>>2]=$c;$c=q[Hc+60>>2];q[Ia+56>>2]=q[Hc+56>>2];q[Ia+60>>2]=$c;$c=q[Hc+52>>2];q[Ia+48>>2]=q[Hc+48>>2];q[Ia+52>>2]=$c;$c=q[Hc+44>>2];q[Ia+40>>2]=q[Hc+40>>2];q[Ia+44>>2]=$c;$c=q[Hc+36>>2];q[Ia+32>>2]=q[Hc+32>>2];q[Ia+36>>2]=$c;$c=q[Hc+28>>2];q[Ia+24>>2]=q[Hc+24>>2];q[Ia+28>>2]=$c;$c=q[Hc+20>>2];q[Ia+16>>2]=q[Hc+16>>2];q[Ia+20>>2]=$c;$c=q[Hc+12>>2];q[Ia+8>>2]=q[Hc+8>>2];q[Ia+12>>2]=$c;q[Ia+88>>2]=0;q[Ia+64>>2]=0;q[Ia+68>>2]=0;q[Ia+72>>2]=0;q[Ia+76>>2]=0;o[Ia+77|0]=0;o[Ia+78|0]=0;o[Ia+79|0]=0;o[Ia+80|0]=0;o[Ia+81|0]=0;o[Ia+82|0]=0;o[Ia+83|0]=0;o[Ia+84|0]=0;return Ia}function wb(Ia,Hc,jd){var ld=0,md=0,od=0;ld=ui(32);zg(ld);md=q[Ia+64>>2];q[Ia+64>>2]=ld;od=Ia;if(md){ld=q[md>>2];if(ld){q[md+4>>2]=ld;ij(ld)}ij(md);ld=q[Ia+64>>2]}md=Hc;Hc=w(Dg(9),Hc);sb(od,4,ld,md,9,Hc,Hc>>31);xb(Ia,jd);o[Ia+84|0]=1;q[Ia+72>>2]=q[Ia+68>>2]}function xb(Ia,Hc){var jd=0,pd=0;a:{if(q[Ia+64>>2]){break a}pd=ui(32);zg(pd);jd=q[Ia+64>>2];q[Ia+64>>2]=pd;if(!jd){break a}pd=q[jd>>2];if(pd){q[jd+4>>2]=pd;ij(pd)}ij(jd)}jd=Dg(q[Ia+28>>2]);jd=w(jd,o[Ia+24|0]);pd=jd;jd=jd>>31;if(Ag(q[Ia+64>>2],Nj(pd,jd,Hc,0),V)){tb(Ia,q[Ia+64>>2],pd,jd);q[Ia+80>>2]=Hc}}function yb(Ia){var Hc=0,qd=0,rd=0,sd=0,td=0,ud=0;qd=T-16|0;T=qd;q[Ia>>2]=1620;rd=Ia+4|0;Hc=rd;q[Hc>>2]=0;q[Hc+4>>2]=0;q[Ia+12>>2]=0;q[Ia+16>>2]=0;Hc=Ia+20|0;q[Hc>>2]=0;q[Hc+4>>2]=0;q[Ia+28>>2]=0;q[Ia+32>>2]=0;q[qd+12>>2]=0;zb(rd,qd+12|0);rd=q[qd+12>>2];sd=q[Hc>>2];ud=Ia+16|0;Hc=q[ud>>2];td=sd-Hc>>2;a:{if((rd|0)<(td|0)){break a}q[qd+8>>2]=-1;sd=rd+1|0;if(sd>>>0>td>>>0){Ab(ud,sd-td|0,qd+8|0);Hc=q[ud>>2];rd=q[qd+12>>2];break a}if(sd>>>0>=td>>>0){break a}q[Ia+20>>2]=(sd<<2)+Hc}q[(rd<<2)+Hc>>2]=(q[Ia+8>>2]-q[Ia+4>>2]>>2)+ -1;T=qd+16|0}function zb(Ia,vd){var wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0;a:{yd=q[Ia>>2];Ad=q[Ia+4>>2]-yd|0;wd=Ad>>2;xd=wd+1|0;if(xd>>>0<1073741824){Bd=wd<<2;wd=q[Ia+8>>2]-yd|0;zd=wd>>1;xd=wd>>2>>>0<536870911?zd>>>0>>0?xd:zd:1073741823;wd=0;b:{if(!xd){break b}if(xd>>>0>=1073741824){break a}wd=ui(xd<<2)}zd=Bd+wd|0;q[zd>>2]=q[vd>>2];vd=wd+(xd<<2)|0;xd=zd+4|0;if((Ad|0)>=1){oj(wd,yd,Ad)}q[Ia>>2]=wd;q[Ia+8>>2]=vd;q[Ia+4>>2]=xd;if(yd){ij(yd)}return}Gi();F()}ob(1708);F()}function Ab(Ia,vd,Cd){var Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0;Fd=q[Ia+8>>2];Dd=q[Ia+4>>2];if(Fd-Dd>>2>>>0>=vd>>>0){while(1){q[Dd>>2]=q[Cd>>2];Dd=Dd+4|0;vd=vd+ -1|0;if(vd){continue}break}q[Ia+4>>2]=Dd;return}a:{Gd=q[Ia>>2];Hd=Dd-Gd|0;Id=Hd>>2;Dd=Id+vd|0;if(Dd>>>0<1073741824){Fd=Fd-Gd|0;Ed=Fd>>1;Dd=Fd>>2>>>0<536870911?Ed>>>0
>>0?Dd:Ed:1073741823;Ed=0;b:{if(!Dd){break b}if(Dd>>>0>=1073741824){break a}Ed=ui(Dd<<2)}Fd=Ed+(Dd<<2)|0;Dd=Ed+(Id<<2)|0;while(1){q[Dd>>2]=q[Cd>>2];Dd=Dd+4|0;vd=vd+ -1|0;if(vd){continue}break}if((Hd|0)>=1){oj(Ed,Gd,Hd)}q[Ia>>2]=Ed;q[Ia+8>>2]=Fd;q[Ia+4>>2]=Dd;if(Gd){ij(Gd)}return}Gi();F()}ob(1708);F()}function Bb(Ia,vd,Cd){Ia=Ia|0;vd=vd|0;Cd=Cd|0;q[Ia+32>>2]=Cd;q[Ia+28>>2]=vd;return 1}function Cb(Ia,vd){Ia=Ia|0;vd=vd|0;var Cd=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0;Jd=T-16|0;T=Jd;Nd=Ia+8|0;Db(q[Nd>>2]-q[Ia+4>>2]>>2,vd);Cd=q[Ia+4>>2];if((Cd|0)!=q[Nd>>2]){Pd=Jd+13|0;Qd=Jd+14|0;Rd=Jd+15|0;Sd=Jd+16|0;Md=vd+4|0;while(1){Ld=q[q[q[Ia+32>>2]+8>>2]+(q[(Od<<2)+Cd>>2]<<2)>>2];o[Jd+15|0]=q[Ld+56>>2];Cd=q[vd+20>>2];Kd=q[vd+16>>2];if((Cd|0)<0?1:(Cd|0)<=0?Kd>>>0>0?0:1:0){$a(vd,q[Md>>2],Jd+15|0,Sd);Kd=q[vd+16>>2];Cd=q[vd+20>>2]}o[Jd+14|0]=q[Ld+28>>2];if((Cd|0)<0?1:(Cd|0)<=0?Kd>>>0>0?0:1:0){$a(vd,q[Md>>2],Jd+14|0,Rd);Kd=q[vd+16>>2];Cd=q[vd+20>>2]}o[Jd+13|0]=r[Ld+24|0];if((Cd|0)<0?1:(Cd|0)<=0?Kd>>>0>0?0:1:0){$a(vd,q[Md>>2],Jd+13|0,Qd);Kd=q[vd+16>>2];Cd=q[vd+20>>2]}o[Jd+12|0]=r[Ld+32|0];if((Cd|0)<0?1:(Cd|0)<=0?Kd>>>0>0?0:1:0){$a(vd,q[Md>>2],Jd+12|0,Pd)}Db(q[Ld+60>>2],vd);Od=Od+1|0;Cd=q[Ia+4>>2];if(Od>>>0>2]-Cd>>2>>>0){continue}break}}T=Jd+16|0;return 1}function Db(Ia,vd){var Td=0,Ud=0,Vd=0;Td=T-16|0;T=Td;o[Td+15|0]=Ia&127;a:{if(Ia>>>0>=128){o[Td+15|0]=Ia|128;Vd=q[vd+20>>2];Ud=0;if((Vd|0)>0?1:(Vd|0)>=0?t[vd+16>>2]<=0?0:1:0){break a}$a(vd,q[vd+4>>2],Td+15|0,Td+16|0);Ud=Db(Ia>>>7,vd);break a}Ia=q[vd+20>>2];Ud=0;if((Ia|0)>0?1:(Ia|0)>=0?t[vd+16>>2]<1?0:1:0){break a}$a(vd,q[vd+4>>2],Td+15|0,Td+16|0);Ud=1}Ia=Ud;T=Td+16|0;return Ia}function Eb(Ia){Ia=Ia|0;var vd=0;q[Ia>>2]=1620;vd=q[Ia+16>>2];if(vd){q[Ia+20>>2]=vd;ij(vd)}vd=q[Ia+4>>2];if(vd){q[Ia+8>>2]=vd;ij(vd)}return Ia|0}function Fb(q){q=q|0;F()}function Gb(Ia,Wd){Ia=Ia|0;Wd=Wd|0;var Xd=0;a:{if(!n[q[q[Ia>>2]+40>>2]](Ia)){break a}if(!n[q[q[Ia>>2]+44>>2]](Ia,Wd)){break a}Xd=n[q[q[Ia>>2]+48>>2]](Ia,Wd)|0}return Xd|0}function Hb(q,Ia){q=q|0;Ia=Ia|0;return 0}function Ib(q,Ia,Wd){q=q|0;Ia=Ia|0;Wd=Wd|0;return-1}function Jb(Ia,Wd){var Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0;Ia=q[Ia+4>>2];if(Ia){Zd=r[Wd+11|0];_d=Zd<<24>>24<0;Zd=_d?q[Wd+4>>2]:Zd;be=_d?q[Wd>>2]:Wd;while(1){Wd=Ia+16|0;Yd=r[Ia+27|0];_d=Yd<<24>>24<0;$d=_d?q[Ia+20>>2]:Yd;ce=$d>>>0>>0;a:{b:{c:{d:{e:{f:{Yd=ce?$d:Zd;if(Yd){ae=_d?q[Wd>>2]:Wd;de=yh(be,ae,Yd);if(de){break f}}if(Zd>>>0<$d>>>0){break a}if(!Yd){break d}ae=_d?q[Wd>>2]:Wd;break e}if((de|0)<=-1){break a}}Wd=yh(ae,be,Yd);if(Wd){break c}}if(ce){break b}return 1}if((Wd|0)<=-1){break b}return 1}Ia=Ia+4|0}Ia=q[Ia>>2];if(Ia){continue}break}}return 0}function Kb(Ia,Wd,ee,fe){var ge=0,he=0,ie=0,je=x(0);ge=T-32|0;T=ge;ie=Ia+4|0;Ia=Nb(Ia,Wd);if((ie|0)!=(Ia|0)){he=yi(ge+16|0,Ia+28|0);Wd=r[he+11|0];Ia=Wd<<24>>24;if(!(!((Ia|0)<0?q[he+4>>2]:Wd)|(ee|0)<1)){Wd=0;Ia=(Ia|0)<0?q[he>>2]:ge+16|0;while(1){je=th(Ia,ge+12|0);ie=Ia;Ia=q[ge+12>>2];a:{if((ie|0)==(Ia|0)){break a}u[(Wd<<2)+fe>>2]=je;Wd=Wd+1|0;if((ee|0)!=(Wd|0)){continue}}break}Ia=r[he+11|0]}if(Ia<<24>>24<=-1){ij(q[he>>2])}}T=ge+32|0}function Lb(Ia,Wd,ee,fe){var ke=0,le=0,me=0,ne=0,oe=x(0),pe=0;a:{b:{if(!fe){break b}ke=q[Ia+28>>2]+ -1|0;if(ke>>>0>10){break b}c:{d:{e:{switch(ke-1|0){default:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=o[Wd|0];Wd=Wd+1|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 0:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=r[Wd|0];Wd=Wd+1|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 1:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=p[Wd>>1];Wd=Wd+2|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 2:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=s[Wd>>1];Wd=Wd+2|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 3:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=q[Wd>>2];Wd=Wd+4|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 4:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=q[Wd>>2];Wd=Wd+4|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 5:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=q[Wd>>2];Wd=Wd+8|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 6:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=q[Wd>>2];Wd=Wd+8|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}break a;case 7:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24<1){break c}ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){ke=(le<<2)+fe|0;oe=u[Wd>>2];f:{if(x(y(oe))>2]=ne;Wd=Wd+4|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}break c;case 8:me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24<1){break d}ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){ke=(le<<2)+fe|0;pe=v[Wd>>3];g:{if(y(pe)<2147483648){ne=~~pe;break g}ne=-2147483648}q[ke>>2]=ne;Wd=Wd+8|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}break d;case 9:break e}}me=1;ke=o[Ia+24|0];if(((ke|0)>(ee|0)?ee:ke)<<24>>24>=1){ke=q[q[Ia>>2]>>2];Wd=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],Wd,0)|0;Wd=ke+Wd|0;while(1){q[(le<<2)+fe>>2]=r[Wd|0];Wd=Wd+1|0;le=le+1|0;ke=o[Ia+24|0];if((le|0)<((ke|0)>(ee|0)?ee:ke)<<24>>24){continue}break}}if((ke|0)>=(ee|0)){break b}pj((ke<<2)+fe|0,0,ee-ke<<2);break b}if((ke|0)>=(ee|0)){break b}break a}if((ke|0)>=(ee|0)){break b}break a}return me}pj((ke<<2)+fe|0,0,ee-ke<<2);return 1}function Mb(Ia){var Wd=0,ee=0,fe=0,qe=0,re=0;qe=T-16|0;T=qe;Wd=ui(16);q[qe>>2]=Wd;q[qe+4>>2]=14;q[qe+8>>2]=-2147483632;o[Wd+14|0]=0;ee=r[1854]|r[1855]<<8|(r[1856]<<16|r[1857]<<24);fe=r[1850]|r[1851]<<8|(r[1852]<<16|r[1853]<<24);o[Wd+6|0]=fe;o[Wd+7|0]=fe>>>8;o[Wd+8|0]=fe>>>16;o[Wd+9|0]=fe>>>24;o[Wd+10|0]=ee;o[Wd+11|0]=ee>>>8;o[Wd+12|0]=ee>>>16;o[Wd+13|0]=ee>>>24;ee=r[1848]|r[1849]<<8|(r[1850]<<16|r[1851]<<24);fe=r[1844]|r[1845]<<8|(r[1846]<<16|r[1847]<<24);o[Wd|0]=fe;o[Wd+1|0]=fe>>>8;o[Wd+2|0]=fe>>>16;o[Wd+3|0]=fe>>>24;o[Wd+4|0]=ee;o[Wd+5|0]=ee>>>8;o[Wd+6|0]=ee>>>16;o[Wd+7|0]=ee>>>24;re=Lg(Ia,qe,-1);if(o[qe+11|0]<=-1){ij(q[qe>>2])}Wd=ui(16);q[qe>>2]=Wd;q[qe+4>>2]=14;q[qe+8>>2]=-2147483632;o[Wd+14|0]=0;ee=r[1869]|r[1870]<<8|(r[1871]<<16|r[1872]<<24);fe=r[1865]|r[1866]<<8|(r[1867]<<16|r[1868]<<24);o[Wd+6|0]=fe;o[Wd+7|0]=fe>>>8;o[Wd+8|0]=fe>>>16;o[Wd+9|0]=fe>>>24;o[Wd+10|0]=ee;o[Wd+11|0]=ee>>>8;o[Wd+12|0]=ee>>>16;o[Wd+13|0]=ee>>>24;ee=r[1863]|r[1864]<<8|(r[1865]<<16|r[1866]<<24);fe=r[1859]|r[1860]<<8|(r[1861]<<16|r[1862]<<24);o[Wd|0]=fe;o[Wd+1|0]=fe>>>8;o[Wd+2|0]=fe>>>16;o[Wd+3|0]=fe>>>24;o[Wd+4|0]=ee;o[Wd+5|0]=ee>>>8;o[Wd+6|0]=ee>>>16;o[Wd+7|0]=ee>>>24;Ia=Lg(Ia,qe,-1);if(o[qe+11|0]<=-1){ij(q[qe>>2])}T=qe+16|0;Ia=(re|0)<(Ia|0)?Ia:re;return(Ia|0)==-1?5:Ia}function Nb(Ia,se){var te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0;xe=Ia+4|0;Ia=q[xe>>2];a:{b:{if(!Ia){break b}te=r[se+11|0];ue=te<<24>>24<0;ve=ue?q[se+4>>2]:te;ze=ue?q[se>>2]:se;te=xe;while(1){se=r[Ia+27|0];Ae=se<<24>>24<0;ye=Ae?q[Ia+20>>2]:se;we=ve>>>0>>0;ue=we?ve:ye;c:{if(ue){se=Ia+16|0;se=yh(Ae?q[se>>2]:se,ze,ue);if(se){break c}}se=ye>>>0>>0?-1:we}te=(se|0)<0?te:Ia;Ia=q[(se>>>29&4)+Ia>>2];if(Ia){continue}break}if((te|0)==(xe|0)){break b}Ia=r[te+27|0];we=Ia<<24>>24<0;d:{ue=we?q[te+20>>2]:Ia;se=ue>>>0>>0?ue:ve;if(se){Ia=te+16|0;Ia=yh(ze,we?q[Ia>>2]:Ia,se);if(Ia){break d}}if(ve>>>0>>0){break b}break a}if((Ia|0)>-1){break a}}te=xe}return te}function Ob(Ia,se){var Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0;a:{De=q[Ia>>2];Fe=q[Ia+4>>2]-De|0;Be=Fe>>2;Ce=Be+1|0;if(Ce>>>0<1073741824){Ge=Be<<2;Be=q[Ia+8>>2]-De|0;Ee=Be>>1;Ce=Be>>2>>>0<536870911?Ee>>>0>>0?Ce:Ee:1073741823;Be=0;b:{if(!Ce){break b}if(Ce>>>0>=1073741824){break a}Be=ui(Ce<<2)}Ee=Ge+Be|0;q[Ee>>2]=q[se>>2];se=Be+(Ce<<2)|0;Ce=Ee+4|0;if((Fe|0)>=1){oj(Be,De,Fe)}q[Ia>>2]=Be;q[Ia+8>>2]=se;q[Ia+4>>2]=Ce;if(De){ij(De)}return}Gi();F()}ob(1776);F()}function Pb(Ia){q[Ia+32>>2]=0;q[Ia+12>>2]=-1;q[Ia+4>>2]=0;q[Ia+8>>2]=0;q[Ia>>2]=1884;q[Ia+16>>2]=0;q[Ia+20>>2]=0;o[Ia+21|0]=0;o[Ia+22|0]=0;o[Ia+23|0]=0;o[Ia+24|0]=0;o[Ia+25|0]=0;o[Ia+26|0]=0;o[Ia+27|0]=0;o[Ia+28|0]=0}function Qb(Ia,se,He){Ia=Ia|0;se=se|0;He=He|0;q[Ia+4>>2]=se;se=q[q[q[se+4>>2]+8>>2]+(He<<2)>>2];q[Ia+12>>2]=He;q[Ia+8>>2]=se;return 1}function Rb(Ia,se){Ia=Ia|0;se=se|0;q[Ia+12>>2]=-1;q[Ia+8>>2]=se;return 1}function Sb(Ia,se,He){Ia=Ia|0;se=se|0;He=He|0;return n[q[q[Ia>>2]+44>>2]](Ia,se,He)|0}function Tb(Ia,se,He){Ia=Ia|0;se=se|0;He=He|0;var Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0;Ie=q[Ia+8>>2];Je=q[Ie+40>>2];Me=ui((Je|0)>-1?Je:-1);a:{Le=q[se>>2];Pe=se+4|0;Ne=q[Pe>>2];if((Le|0)==(Ne|0)){break a}Re=Je+Me|0;while(1){Ke=q[(Oe<<2)+Le>>2];Je=Me;Se=q[q[Ie>>2]>>2];Te=q[Ie+48>>2];Qe=q[Ie+40>>2];Ue=Qe;Ve=q[Ie+44>>2];if(!r[Ie+84|0]){Ke=q[q[Ie+68>>2]+(Ke<<2)>>2]}Ie=Je;Je=Nj(Ue,Ve,Ke,0)+Te|0;Ke=oj(Ie,Je+Se|0,Qe);Je=q[He+20>>2];if((Je|0)<0?1:(Je|0)<=0?t[He+16>>2]>0?0:1:0){$a(He,q[He+4>>2],Ke,Re);Le=q[se>>2];Ne=q[Pe>>2]}Oe=Oe+1|0;if(Oe>>>0>=Ne-Le>>2>>>0){break a}Ie=q[Ia+8>>2];continue}}ij(Me);return 1}function Ub(q){o[q+28|0]=1}function Vb(Ia,se){Ia=Ia|0;se=se|0;var He=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0;We=T-16|0;T=We;He=1;a:{if((n[q[q[se>>2]+20>>2]](se)|0)<1){break a}_e=Ia+16|0;$e=Ia+24|0;Ze=Ia+20|0;while(1){b:{He=Rg(q[q[Ia+4>>2]+4>>2],n[q[q[se>>2]+24>>2]](se,Xe)|0);q[We+12>>2]=He;if((He|0)==-1){break b}Ye=q[Ze>>2];c:{if((Ye|0)!=q[$e>>2]){q[Ye>>2]=He;q[Ze>>2]=Ye+4;break c}zb(_e,We+12|0)}sg(q[Ia+4>>2],q[We+12>>2]);He=1;Xe=Xe+1|0;if((Xe|0)<(n[q[q[se>>2]+20>>2]](se)|0)){continue}break a}break}He=0}T=We+16|0;return He|0}function Wb(Ia,se){Ia=Ia|0;se=se|0;var af=0,bf=0,cf=0,df=0,ef=0,ff=0;af=1;a:{if((n[q[q[se>>2]+20>>2]](se)|0)<1){break a}af=0;while(1){cf=Rg(q[q[Ia+4>>2]+4>>2],n[q[q[se>>2]+24>>2]](se,bf)|0);if((cf|0)==-1){break a}if(!(ef=se,ff=tg(q[Ia+4>>2],cf),df=q[q[se>>2]+28>>2],n[df](ef|0,ff|0)|0)){break a}bf=bf+1|0;if((bf|0)<(n[q[q[se>>2]+20>>2]](se)|0)){continue}break}af=1}return af|0}function Xb(Ia){Ia=Ia|0;var se=0;q[Ia>>2]=1884;se=q[Ia+32>>2];q[Ia+32>>2]=0;if(se){qa(se)}se=q[Ia+16>>2];if(se){q[Ia+20>>2]=se;ij(se)}return Ia|0}function Yb(Ia){Ia=Ia|0;var gf=0;q[Ia>>2]=1884;gf=q[Ia+32>>2];q[Ia+32>>2]=0;if(gf){qa(gf)}gf=q[Ia+16>>2];if(gf){q[Ia+20>>2]=gf;ij(gf)}ij(Ia)}function Zb(Ia,hf){var jf=0;yb(Ia);q[Ia+36>>2]=0;q[Ia+40>>2]=0;q[Ia>>2]=1988;q[Ia+44>>2]=0;q[Ia+48>>2]=0;q[Ia+52>>2]=0;q[Ia+56>>2]=0;q[Ia+60>>2]=0;q[Ia+64>>2]=0;q[Ia+68>>2]=0;jf=q[hf>>2];q[hf>>2]=0;q[Ia+72>>2]=jf}function _b(Ia,hf,kf){Ia=Ia|0;hf=hf|0;kf=kf|0;var lf=0,mf=0,nf=0,of=0,pf=0,qf=0;a:{if(!Bb(Ia,hf,kf)){break a}if(!n[q[q[Ia>>2]+52>>2]](Ia)){break a}lf=1;mf=Ia+4|0;kf=q[mf>>2];nf=Ia+8|0;if((kf|0)==q[nf>>2]){break a}lf=0;qf=Ia+36|0;Ia=0;while(1){of=Ia<<2;pf=q[of+q[qf>>2]>>2];if(!n[q[q[pf>>2]+8>>2]](pf,hf,q[kf+of>>2])){break a}Ia=Ia+1|0;kf=q[mf>>2];if(Ia>>>0>2]-kf>>2>>>0){continue}break}lf=1}return lf|0}function $b(Ia,hf){Ia=Ia|0;hf=hf|0;var kf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0;rf=T-16|0;T=rf;a:{if(!Cb(Ia,hf)){break a}uf=1;kf=q[Ia+36>>2];tf=Ia+40|0;if((kf|0)==q[tf>>2]){break a}vf=rf+16|0;wf=hf+4|0;while(1){kf=q[(sf<<2)+kf>>2];xf=rf,yf=n[q[q[kf>>2]+32>>2]](kf)|0,o[xf+15|0]=yf;kf=q[hf+20>>2];if((kf|0)<0?1:(kf|0)<=0?t[hf+16>>2]>0?0:1:0){$a(hf,q[wf>>2],rf+15|0,vf)}sf=sf+1|0;kf=q[Ia+36>>2];if(sf>>>0>2]-kf>>2>>>0){continue}break}}T=rf+16|0;return uf|0}function ac(Ia,hf){Ia=Ia|0;hf=hf|0;var zf=0,Af=0;zf=q[Ia+72>>2];a:{if(!zf){break a}q[zf+4>>2]=Ia+60;if(!n[q[q[zf>>2]+12>>2]](zf)){break a}if(!n[q[q[Ia>>2]+40>>2]](Ia)){break a}if(!n[q[q[Ia>>2]+44>>2]](Ia,hf)){break a}Af=n[q[q[Ia>>2]+48>>2]](Ia,hf)|0}return Af|0}function bc(Ia){Ia=Ia|0;var hf=0,Bf=0,Cf=0,Df=0,Ef=0;Bf=1;hf=q[Ia+36>>2];Df=Ia+40|0;a:{if((hf|0)==q[Df>>2]){break a}Ef=Ia+60|0;Bf=0;while(1){hf=q[(Cf<<2)+hf>>2];if(!n[q[q[hf>>2]+16>>2]](hf,Ef)){break a}Cf=Cf+1|0;hf=q[Ia+36>>2];if(Cf>>>0>2]-hf>>2>>>0){continue}break}Bf=1}return Bf|0}function cc(Ia,Ff){Ia=Ia|0;Ff=Ff|0;var Gf=0,Hf=0,If=0,Jf=0,Kf=0;Hf=1;Gf=q[Ia+36>>2];Jf=Ia+40|0;a:{if((Gf|0)==q[Jf>>2]){break a}Kf=Ia+60|0;Hf=0;while(1){Gf=q[(If<<2)+Gf>>2];if(!n[q[q[Gf>>2]+20>>2]](Gf,Kf,Ff)){break a}If=If+1|0;Gf=q[Ia+36>>2];if(If>>>0>2]-Gf>>2>>>0){continue}break}Hf=1}return Hf|0}function dc(Ia,Ff){Ia=Ia|0;Ff=Ff|0;var Lf=0,Mf=0,Nf=0;Lf=q[Ia+36>>2];Nf=Ia+40|0;if((Lf|0)!=q[Nf>>2]){a:{while(1){Lf=q[(Mf<<2)+Lf>>2];if(!n[q[q[Lf>>2]+24>>2]](Lf,Ff)){break a}Mf=Mf+1|0;Lf=q[Ia+36>>2];if(Mf>>>0>2]-Lf>>2>>>0){continue}break}return 1}Ia=0}else{Ia=1}return Ia|0}function ec(Ia){Ia=Ia|0;var Ff=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0;Qf=T-16|0;T=Qf;Sf=Ia+36|0;Ff=q[Ia+8>>2]-q[Ia+4>>2]>>2;Of=q[Ia+40>>2];Rf=q[Ia+36>>2];Pf=Of-Rf>>2;a:{if(Ff>>>0>Pf>>>0){fc(Sf,Ff-Pf|0);break a}if(Ff>>>0>=Pf>>>0){break a}Pf=Rf+(Ff<<2)|0;if((Pf|0)!=(Of|0)){while(1){Of=Of+ -4|0;Ff=q[Of>>2];q[Of>>2]=0;if(Ff){n[q[q[Ff>>2]+4>>2]](Ff)}if((Of|0)!=(Pf|0)){continue}break}}q[Ia+40>>2]=Pf}Ff=1;Pf=Ia+8|0;Rf=Ia+4|0;b:{if(q[Pf>>2]==q[Rf>>2]){break b}Of=0;while(1){n[q[q[Ia>>2]+56>>2]](Qf+8|0,Ia,Of);Ff=q[Ia+36>>2];Vf=q[Qf+8>>2];q[Qf+8>>2]=0;Tf=Of<<2;Uf=Tf+Ff|0;Ff=q[Uf>>2];q[Uf>>2]=Vf;if(Ff){n[q[q[Ff>>2]+4>>2]](Ff)}Ff=q[Qf+8>>2];q[Qf+8>>2]=0;if(Ff){n[q[q[Ff>>2]+4>>2]](Ff)}Ff=q[Tf+q[Sf>>2]>>2];if(!Ff){Ff=0;break b}if(!(!(q[q[Ia+48>>2]+(Of>>>3&536870908)>>2]>>>(Of&31)&1)|Of>>>0>=t[Ia+52>>2])){Ub(Ff)}Ff=1;Of=Of+1|0;if(Of>>>0>2]-q[Rf>>2]>>2>>>0){continue}break}}T=Qf+16|0;return Ff|0}function fc(Ia,Wf){var Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0;Yf=q[Ia+8>>2];Zf=Ia+4|0;Xf=q[Zf>>2];if(Yf-Xf>>2>>>0>=Wf>>>0){Ia=Wf<<2;cg=Zf,dg=pj(Xf,0,Ia)+Ia|0,q[cg>>2]=dg;return}a:{Zf=q[Ia>>2];_f=Xf-Zf>>2;$f=_f+Wf|0;if($f>>>0<1073741824){_f=_f<<2;Yf=Yf-Zf|0;bg=Yf>>1;Yf=Yf>>2>>>0<536870911?bg>>>0<$f>>>0?$f:bg:1073741823;if(Yf){if(Yf>>>0>=1073741824){break a}ag=ui(Yf<<2)}_f=_f+ag|0;pj(_f,0,Wf<<2);Wf=($f<<2)+ag|0;$f=(Yf<<2)+ag|0;if((Xf|0)!=(Zf|0)){while(1){Xf=Xf+ -4|0;Yf=q[Xf>>2];q[Xf>>2]=0;_f=_f+ -4|0;q[_f>>2]=Yf;if((Xf|0)!=(Zf|0)){continue}break}Zf=q[Ia>>2];Xf=q[Ia+4>>2]}q[Ia>>2]=_f;q[Ia+8>>2]=$f;q[Ia+4>>2]=Wf;if((Xf|0)!=(Zf|0)){while(1){Xf=Xf+ -4|0;Ia=q[Xf>>2];q[Xf>>2]=0;if(Ia){n[q[q[Ia>>2]+4>>2]](Ia)}if((Xf|0)!=(Zf|0)){continue}break}}if(Zf){ij(Zf)}return}Gi();F()}ob(2128);F()}function gc(Ia,Wf,eg){Ia=Ia|0;Wf=Wf|0;eg=eg|0;var fg=0,gg=0,hg=0,ig=0,jg=0,kg=0;gg=T-16|0;T=gg;fg=q[Wf+28>>2];hg=q[q[Wf+4>>2]+(eg<<2)>>2];ig=q[q[q[fg+4>>2]+8>>2]+(hg<<2)>>2];Wf=q[ig+28>>2];a:{if(Wf+ -1>>>0>=6){b:{if((Wf|0)!=9){break b}jg=q[fg+48>>2];Wf=ui(32);q[gg>>2]=Wf;q[gg+4>>2]=17;q[gg+8>>2]=-2147483616;o[Wf+17|0]=0;o[Wf+16|0]=r[2064];eg=r[2060]|r[2061]<<8|(r[2062]<<16|r[2063]<<24);fg=r[2056]|r[2057]<<8|(r[2058]<<16|r[2059]<<24);o[Wf+8|0]=fg;o[Wf+9|0]=fg>>>8;o[Wf+10|0]=fg>>>16;o[Wf+11|0]=fg>>>24;o[Wf+12|0]=eg;o[Wf+13|0]=eg>>>8;o[Wf+14|0]=eg>>>16;o[Wf+15|0]=eg>>>24;eg=r[2052]|r[2053]<<8|(r[2054]<<16|r[2055]<<24);fg=r[2048]|r[2049]<<8|(r[2050]<<16|r[2051]<<24);o[Wf|0]=fg;o[Wf+1|0]=fg>>>8;o[Wf+2|0]=fg>>>16;o[Wf+3|0]=fg>>>24;o[Wf+4|0]=eg;o[Wf+5|0]=eg>>>8;o[Wf+6|0]=eg>>>16;o[Wf+7|0]=eg>>>24;c:{d:{fg=jg+16|0;Wf=q[fg>>2];if(!Wf){break d}eg=fg;while(1){kg=q[Wf+16>>2]<(hg|0);eg=kg?eg:Wf;Wf=q[(kg<<2)+Wf>>2];if(Wf){continue}break}if((eg|0)==(fg|0)|(hg|0)>2]){break d}Wf=eg+20|0;if(!Jb(Wf,gg)){break d}Wf=Lg(Wf,gg,-1);break c}Wf=Lg(jg,gg,-1)}if(o[gg+11|0]<=-1){ij(q[gg>>2])}if((Wf|0)<1){break b}if(q[ig+56>>2]==1){Wf=ui(48);q[Wf>>2]=0;q[Wf+4>>2]=0;eg=Wf+40|0;q[eg>>2]=0;q[eg+4>>2]=0;q[Wf+32>>2]=0;q[Wf+36>>2]=0;q[Wf+24>>2]=0;q[Wf+28>>2]=0;q[Wf+16>>2]=0;q[Wf+20>>2]=0;q[Wf+8>>2]=0;q[Wf+12>>2]=0;rc(Wf);q[Wf+44>>2]=-1;q[eg>>2]=1280;q[Wf>>2]=5956;break a}Wf=ui(64);oe(Wf);break a}Wf=ui(36);Pb(Wf);break a}Wf=ui(40);rc(Wf)}q[Ia>>2]=Wf;T=gg+16|0}function hc(Ia){Ia=Ia|0;var Wf=0,eg=0,lg=0,mg=0,ng=0;q[Ia>>2]=1988;Wf=Ia+72|0;eg=q[Wf>>2];q[Wf>>2]=0;if(eg){n[q[q[eg>>2]+4>>2]](eg)}Wf=q[Ia+60>>2];if(Wf){q[Ia- -64>>2]=Wf;ij(Wf)}Wf=q[Ia+48>>2];if(Wf){ij(Wf)}eg=q[Ia+36>>2];if(eg){Wf=eg;ng=Ia+40|0;lg=q[ng>>2];mg=Wf;a:{if((Wf|0)==(lg|0)){break a}while(1){lg=lg+ -4|0;Wf=q[lg>>2];q[lg>>2]=0;if(Wf){n[q[q[Wf>>2]+4>>2]](Wf)}if((eg|0)!=(lg|0)){continue}break}mg=q[Ia+36>>2]}Wf=mg;q[ng>>2]=eg;ij(Wf)}q[Ia>>2]=1620;Wf=q[Ia+16>>2];if(Wf){q[Ia+20>>2]=Wf;ij(Wf)}Wf=q[Ia+4>>2];if(Wf){q[Ia+8>>2]=Wf;ij(Wf)}return Ia|0}function ic(q){q=q|0;ij(hc(q))}function jc(Ia,og){Ia=Ia|0;og=og|0;var pg=0,qg=0;qg=q[Ia+16>>2];pg=0;a:{if(q[Ia+20>>2]-qg>>2<=(og|0)){break a}og=q[(og<<2)+qg>>2];pg=0;if((og|0)<0){break a}Ia=q[q[Ia+36>>2]+(og<<2)>>2];pg=q[Ia+20>>2]-q[Ia+16>>2]>>2}return pg|0}function kc(Ia,og,rg){Ia=Ia|0;og=og|0;rg=rg|0;var sg=0,tg=0;sg=-1;tg=q[Ia+16>>2];a:{if(q[Ia+20>>2]-tg>>2<=(og|0)){break a}og=q[(og<<2)+tg>>2];if((og|0)<0){break a}sg=q[q[q[q[Ia+36>>2]+(og<<2)>>2]+16>>2]+(rg<<2)>>2]}return sg|0}function lc(Ia,og){Ia=Ia|0;og=og|0;var rg=0,ug=0;rg=q[Ia+16>>2];a:{if(q[Ia+20>>2]-rg>>2<=(og|0)){break a}og=q[rg+(og<<2)>>2];if((og|0)<0){break a}if(t[Ia+52>>2]<=og>>>0){mc(Ia+48|0,og+1|0)}ug=1;rg=q[Ia+48>>2]+(og>>>3&536870908)|0;q[rg>>2]=q[rg>>2]|1<<(og&31);rg=q[Ia+40>>2];Ia=q[Ia+36>>2];if(rg-Ia>>2>>>0<=og>>>0){break a}Ub(q[Ia+(og<<2)>>2])}return ug|0}function mc(Ia,og){var vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0;wg=T-32|0;T=wg;a:{vg=q[Ia+4>>2];b:{if(vg>>>0>>0){zg=q[Ia+8>>2];xg=zg<<5;yg=og-vg|0;c:{if(!(xg>>>0>>0|vg>>>0>xg-yg>>>0)){q[Ia+4>>2]=og;og=vg&31;Ia=q[Ia>>2]+(vg>>>3&536870908)|0;break c}q[wg+24>>2]=0;q[wg+16>>2]=0;q[wg+20>>2]=0;if((og|0)<=-1){break a}vg=wg+16|0;if(xg>>>0<=1073741822){og=og+31&-32;xg=zg<<6;og=xg>>>0>>0?og:xg}else{og=2147483647}oc(vg,og);vg=q[Ia+4>>2];q[wg+20>>2]=vg+yg;og=q[wg+16>>2];d:{if((vg|0)<1){vg=0;break d}zg=q[Ia>>2];xg=vg>>>5<<2;og=qj(og,zg,xg)+xg|0;vg=vg&31;if(!vg){vg=0;break d}Ag=-1>>>32-vg;q[og>>2]=q[og>>2]&(Ag^-1)|q[xg+zg>>2]&Ag}q[wg+12>>2]=vg;q[wg+8>>2]=og;vg=q[wg+8>>2];og=q[wg+12>>2];xg=q[Ia>>2];q[Ia>>2]=q[wg+16>>2];q[wg+16>>2]=xg;zg=q[Ia+4>>2];q[Ia+4>>2]=q[wg+20>>2];q[wg+20>>2]=zg;Ia=Ia+8|0;zg=q[Ia>>2];q[Ia>>2]=q[wg+24>>2];q[wg+24>>2]=zg;if(xg){ij(xg)}Ia=vg}if(!yg){break b}if(og){vg=32-og|0;xg=vg>>>0>yg>>>0?yg:vg;q[Ia>>2]=q[Ia>>2]&(-1<>>vg-xg^-1);yg=yg-xg|0;Ia=Ia+4|0}og=Ia;Ia=yg>>>5<<2;og=pj(og,0,Ia);vg=yg&31;if(!vg){break b}Ia=Ia+og|0;q[Ia>>2]=q[Ia>>2]&(-1>>>32-vg^-1);break b}q[Ia+4>>2]=og}T=wg+32|0;return}Gi();F()}function nc(Ia,og){Ia=Ia|0;og=og|0;var Bg=0,Cg=0;Cg=q[Ia+16>>2];a:{if(q[Ia+20>>2]-Cg>>2<=(og|0)){break a}og=q[(og<<2)+Cg>>2];if((og|0)<0){break a}Ia=q[q[Ia+36>>2]+(og<<2)>>2];Bg=q[Ia+32>>2];if(Bg){break a}Bg=q[Ia+8>>2]}return Bg|0}function oc(Ia,og){var Dg=0,Eg=0;Dg=T-32|0;T=Dg;a:{b:{if(q[Ia+8>>2]<<5>>>0>=og>>>0){break b}q[Dg+24>>2]=0;q[Dg+16>>2]=0;q[Dg+20>>2]=0;if((og|0)<=-1){break a}og=(og+ -1>>>5)+1|0;Eg=ui(og<<2);q[Dg+24>>2]=og;q[Dg+20>>2]=0;q[Dg+16>>2]=Eg;og=q[Ia>>2];q[Dg+12>>2]=0;q[Dg+8>>2]=og;Eg=q[Ia+4>>2];q[Dg+4>>2]=Eg&31;q[Dg>>2]=og+(Eg>>>3&536870908);pc(Dg+16|0,Dg+8|0,Dg);og=q[Ia>>2];q[Ia>>2]=q[Dg+16>>2];q[Dg+16>>2]=og;Eg=q[Ia+4>>2];q[Ia+4>>2]=q[Dg+20>>2];q[Dg+20>>2]=Eg;Ia=Ia+8|0;Eg=q[Ia>>2];q[Ia>>2]=q[Dg+24>>2];q[Dg+24>>2]=Eg;if(!og){break b}ij(og)}T=Dg+32|0;return}Gi();F()}function pc(Ia,og,Fg){var Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0;Ig=T-32|0;T=Ig;Kg=q[Fg+4>>2];Gg=q[og+4>>2];Lg=q[Fg>>2];Jg=q[og>>2];og=(Kg-Gg|0)+(Lg-Jg<<3)|0;Fg=q[Ia+4>>2];Hg=og+Fg|0;q[Ia+4>>2]=Hg;a:{if(!(!Fg|(Hg+ -1^Fg+ -1)>>>0>31)){Ia=q[Ia>>2];break a}Ia=q[Ia>>2];if(Hg>>>0<=32){q[Ia>>2]=0;break a}q[(Hg+ -1>>>3&536870908)+Ia>>2]=0}Ia=(Fg>>>3&536870908)+Ia|0;Fg=Fg&31;b:{if((Fg|0)==(Gg|0)){c:{if((og|0)<1){break c}d:{if(!Gg){Fg=0;break d}Hg=32-Gg|0;Fg=(og|0)<(Hg|0)?og:Hg;Hg=-1<>>Hg-Fg;q[Ia>>2]=q[Ia>>2]&(Hg^-1)|Hg&q[Jg>>2];og=og-Fg|0;Gg=Fg+Gg|0;Fg=Gg&31;Ia=(Gg>>>3&536870908)+Ia|0;Jg=Jg+4|0}Gg=(og|0)/32|0;Hg=Gg<<2;Ia=qj(Ia,Jg,Hg)+Hg|0;Gg=og-(Gg<<5)|0;if((Gg|0)<1){Gg=Fg;break c}og=-1>>>32-Gg;q[Ia>>2]=q[Ia>>2]&(og^-1)|og&q[Hg+Jg>>2]}q[Ig+4>>2]=Gg;q[Ig>>2]=Ia;break b}q[Ig+28>>2]=Gg;q[Ig+24>>2]=Jg;q[Ig+20>>2]=Kg;q[Ig+16>>2]=Lg;q[Ig+12>>2]=Fg;q[Ig+8>>2]=Ia;qc(Ig,Ig+24|0,Ig+16|0,Ig+8|0)}T=Ig+32|0}function qc(Ia,og,Fg,Mg){var Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0;Og=q[og>>2];Ng=q[Fg+4>>2]+(q[Fg>>2]-Og<<3)|0;Fg=q[og+4>>2];Pg=Ng-Fg|0;a:{if((Pg|0)<=0){Fg=q[Mg+4>>2];break a}b:{if(!Fg){Fg=q[Mg+4>>2];break b}Ng=q[Mg+4>>2];Sg=32-Ng|0;Tg=32-Fg|0;Qg=(Pg|0)<(Tg|0)?Pg:Tg;Rg=Sg>>>0>>0?Sg:Qg;Ug=q[Mg>>2];Og=q[Og>>2]&(-1<>>Tg-Qg);q[Ug>>2]=q[Ug>>2]&(-1<>>Sg-Rg^-1)|(Ng>>>0>Fg>>>0?Og<>>Fg-Ng);Ng=Ng+Rg|0;Fg=Ng&31;q[Mg+4>>2]=Fg;Sg=Ug+(Ng>>>3&536870908)|0;q[Mg>>2]=Sg;Ng=Qg-Rg|0;if((Ng|0)>=1){q[Sg>>2]=q[Sg>>2]&(-1>>>32-Ng^-1)|Og>>>Rg+q[og+4>>2];q[Mg+4>>2]=Ng;Fg=Ng}Pg=Pg-Qg|0;Og=q[og>>2]+4|0;q[og>>2]=Og}Rg=-1<>2];Og=q[Og>>2];q[Ng>>2]=Sg&q[Ng>>2]|Og<>2]=Ng+4;q[Ng+4>>2]=Rg&q[Ng+4>>2]|Og>>>Qg;Og=q[og>>2]+4|0;q[og>>2]=Og;Tg=(Pg|0)>63;Ng=Pg+ -32|0;Pg=Ng;if(Tg){continue}break}}if((Ng|0)<1){break a}og=q[Mg>>2];Pg=(Qg|0)<(Ng|0)?Qg:Ng;Rg=q[og>>2]&(Rg&-1>>>Qg-Pg^-1);Qg=q[Og>>2]&-1>>>32-Ng;q[og>>2]=Rg|Qg<>2]=Fg;Og=og+(Og>>>3&536870908)|0;q[Mg>>2]=Og;og=Ng-Pg|0;if((og|0)<1){break a}q[Og>>2]=q[Og>>2]&(-1>>>32-og^-1)|Qg>>>Pg;q[Mg+4>>2]=og;Fg=og}og=q[Mg>>2];q[Ia+4>>2]=Fg;q[Ia>>2]=og}function rc(Ia){Pb(Ia);q[Ia+36>>2]=0;q[Ia>>2]=2204}function sc(Ia,og,Fg){Ia=Ia|0;og=og|0;Fg=Fg|0;var Mg=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0;Mg=T-16|0;T=Mg;a:{if(!Qb(Ia,og,Fg)){break a}if(Wg=(n[q[q[Ia>>2]+32>>2]](Ia)|0)==1,Xg=0,Yg=q[q[Ia+8>>2]+28>>2]+ -1>>>0>5,Yg?Wg:Xg){break a}Xg=Mg+8|0,Yg=Ia,Zg=ve(Fg,q[og+48>>2]),Wg=q[q[Ia>>2]+48>>2],n[Wg](Xg|0,Yg|0,Zg|0);og=q[Mg+8>>2];q[Mg+8>>2]=0;Fg=q[Ia+36>>2];q[Ia+36>>2]=og;b:{if(!Fg){q[Mg+8>>2]=0;break b}n[q[q[Fg>>2]+4>>2]](Fg);og=q[Mg+8>>2];q[Mg+8>>2]=0;if(og){n[q[q[og>>2]+4>>2]](og)}og=q[Ia+36>>2]}Vg=1;if(!og){break a}if(n[q[q[Ia>>2]+36>>2]](Ia,og)){break a}og=q[Ia+36>>2];q[Ia+36>>2]=0;if(!og){break a}n[q[q[og>>2]+4>>2]](og)}T=Mg+16|0;return Vg|0}function tc(Ia,og){Ia=Ia|0;og=og|0;var Fg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0;_g=T-16|0;T=_g;a:{Fg=q[Ia+4>>2];b:{c:{if(Fg){if(n[q[q[Ia>>2]+52>>2]](Ia,og,q[q[Fg+4>>2]+80>>2])){break c}break b}if(!n[q[q[Ia>>2]+52>>2]](Ia,og,0)){break b}}gh=1;if(!r[Ia+28|0]){break b}hh=q[Ia+32>>2];bh=q[Ia+8>>2];Fg=q[bh+80>>2];q[_g+8>>2]=0;q[_g>>2]=0;q[_g+4>>2]=0;if(Fg){if(Fg>>>0>=1073741824){break a}$g=Fg<<2;ah=ui($g);q[_g>>2]=ah;Fg=$g+ah|0;q[_g+8>>2]=Fg;pj(ah,0,$g);q[_g+4>>2]=Fg}Fg=q[og+4>>2];dh=q[og>>2];if((Fg|0)!=(dh|0)){ch=Fg-dh>>2;og=0;eh=r[bh+84|0];fh=bh+68|0;while(1){$g=q[dh+(og<<2)>>2];Fg=ah;if(!eh){$g=q[q[fh>>2]+($g<<2)>>2]}q[($g<<2)+Fg>>2]=og;og=og+1|0;if(og>>>0>>0){continue}break}}ch=q[q[q[Ia+4>>2]+4>>2]+80>>2];if(ch){eh=q[hh+68>>2];og=0;fh=r[bh+84|0];while(1){Ia=og;$g=eh+(og<<2)|0;Fg=ah;if(!fh){Ia=q[q[bh+68>>2]+(og<<2)>>2]}q[$g>>2]=q[(Ia<<2)+Fg>>2];og=og+1|0;if(og>>>0>>0){continue}break}}if(!ah){break b}q[_g+4>>2]=ah;ij(ah)}T=_g+16|0;return gh|0}Gi();F()}function uc(Ia,og,ih){Ia=Ia|0;og=og|0;ih=ih|0;var jh=0,kh=0,lh=0;jh=T-48|0;T=jh;lh=q[og+4>>2];og=q[og+12>>2];q[jh+40>>2]=0;kh=jh+32|0;q[kh>>2]=0;q[kh+4>>2]=0;q[jh+24>>2]=0;q[jh+28>>2]=0;q[jh+16>>2]=0;q[jh+20>>2]=0;q[jh+8>>2]=0;q[jh+12>>2]=0;vc(jh,ih,og,lh,jh+8|0);og=q[kh>>2];if(og){q[jh+36>>2]=og;ij(og)}q[Ia>>2]=q[jh>>2];T=jh+48|0}function vc(Ia,og,ih,mh,nh){var oh=0,ph=0;ph=q[q[q[mh+4>>2]+8>>2]+(ih<<2)>>2];if((og|0)==-1){og=ue(ih,mh)}a:{if((og|0)!=-2){if((n[q[q[mh>>2]+8>>2]](mh)|0)==1){Bc(Ia,mh,og,ih,nh);if(q[Ia>>2]){break a}q[Ia>>2]=0}oh=ui(44);Cc(oh,ph,nh)}q[Ia>>2]=oh}}function wc(Ia,og,ih){Ia=Ia|0;og=og|0;ih=ih|0;var mh=0,nh=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0;nh=T-32|0;T=nh;a:{b:{if(!q[q[Ia+8>>2]+80>>2]){mh=1;break b}o[nh+31|0]=254;sh=q[Ia+36>>2];if(sh){if(!n[q[q[Ia>>2]+40>>2]](Ia,sh)){break b}mh=q[Ia+36>>2];wh=nh,xh=n[q[q[mh>>2]+8>>2]](mh)|0,o[wh+31|0]=xh}mh=q[ih+20>>2];if((mh|0)<0?1:(mh|0)<=0?t[ih+16>>2]>0?0:1:0){$a(ih,q[ih+4>>2],nh+31|0,nh+32|0)}mh=q[Ia+36>>2];c:{if(!mh){break c}wh=nh,xh=n[q[q[mh>>2]+36>>2]](mh)|0,o[wh+16|0]=xh;mh=q[ih+20>>2];if((mh|0)>0?1:(mh|0)>=0?t[ih+16>>2]<=0?0:1:0){break c}$a(ih,q[ih+4>>2],nh+16|0,nh+17|0)}mh=q[Ia+32>>2];sh=q[mh+80>>2];th=o[mh+24|0];rh=q[q[mh>>2]>>2];uh=q[mh+48>>2];mh=0;q[nh+24>>2]=0;q[nh+16>>2]=0;q[nh+20>>2]=0;sh=w(sh,th);if(sh){if(sh>>>0>=1073741824){break a}qh=sh<<2;mh=ui(qh);q[nh+16>>2]=mh;vh=mh+qh|0;q[nh+24>>2]=vh;pj(mh,0,qh);q[nh+20>>2]=vh}qh=rh+uh|0;uh=Ia+36|0;rh=q[uh>>2];d:{e:{if(!rh){break e}n[q[q[rh>>2]+44>>2]](rh,qh,mh,sh,th,q[og>>2])|0;mh=q[uh>>2];if(!mh){mh=q[nh+16>>2];break e}if(n[q[q[mh>>2]+32>>2]](mh)){break d}mh=q[nh+16>>2];qh=q[Ia+36>>2]?mh:qh}yg(qh,sh,mh)}f:{g:{h:{i:{j:{mh=q[Ia+4>>2];if(!mh){break j}uh=q[mh+48>>2];q[nh+8>>2]=0;q[nh>>2]=0;q[nh+4>>2]=0;mh=ui(48);q[nh>>2]=mh;q[nh+4>>2]=34;q[nh+8>>2]=-2147483600;o[mh+34|0]=0;qh=r[2292]|r[2293]<<8;o[mh+32|0]=qh;o[mh+33|0]=qh>>>8;qh=r[2288]|r[2289]<<8|(r[2290]<<16|r[2291]<<24);rh=r[2284]|r[2285]<<8|(r[2286]<<16|r[2287]<<24);o[mh+24|0]=rh;o[mh+25|0]=rh>>>8;o[mh+26|0]=rh>>>16;o[mh+27|0]=rh>>>24;o[mh+28|0]=qh;o[mh+29|0]=qh>>>8;o[mh+30|0]=qh>>>16;o[mh+31|0]=qh>>>24;qh=r[2280]|r[2281]<<8|(r[2282]<<16|r[2283]<<24);rh=r[2276]|r[2277]<<8|(r[2278]<<16|r[2279]<<24);o[mh+16|0]=rh;o[mh+17|0]=rh>>>8;o[mh+18|0]=rh>>>16;o[mh+19|0]=rh>>>24;o[mh+20|0]=qh;o[mh+21|0]=qh>>>8;o[mh+22|0]=qh>>>16;o[mh+23|0]=qh>>>24;qh=r[2272]|r[2273]<<8|(r[2274]<<16|r[2275]<<24);rh=r[2268]|r[2269]<<8|(r[2270]<<16|r[2271]<<24);o[mh+8|0]=rh;o[mh+9|0]=rh>>>8;o[mh+10|0]=rh>>>16;o[mh+11|0]=rh>>>24;o[mh+12|0]=qh;o[mh+13|0]=qh>>>8;o[mh+14|0]=qh>>>16;o[mh+15|0]=qh>>>24;qh=r[2264]|r[2265]<<8|(r[2266]<<16|r[2267]<<24);rh=r[2260]|r[2261]<<8|(r[2262]<<16|r[2263]<<24);o[mh|0]=rh;o[mh+1|0]=rh>>>8;o[mh+2|0]=rh>>>16;o[mh+3|0]=rh>>>24;o[mh+4|0]=qh;o[mh+5|0]=qh>>>8;o[mh+6|0]=qh>>>16;o[mh+7|0]=qh>>>24;mh=Ng(uh,nh,1);if(o[nh+11|0]<=-1){ij(q[nh>>2])}if(mh){break j}if(!sh){break i}mh=0;th=q[nh+16>>2];og=0;while(1){og=q[th+(mh<<2)>>2]|og;mh=mh+1|0;if((sh|0)!=(mh|0)){continue}break}if(!og){break i}og=(z(og)>>>3^3)+1|0;break h}o[nh|0]=1;mh=q[ih+20>>2];if((mh|0)<0?1:(mh|0)<=0?t[ih+16>>2]>0?0:1:0){$a(ih,q[ih+4>>2],nh,nh+1|0)}mh=Ig(nh);sh=q[Ia+4>>2];if(sh){Me(mh,10-Mb(q[sh+48>>2])|0)}og=Ne(q[nh+16>>2],w(th,q[og+4>>2]-q[og>>2]>>2),th,mh,ih);va(mh,q[mh+4>>2]);mh=0;if(og){break g}break f}og=1}o[nh|0]=0;th=q[ih+20>>2];mh=th;qh=q[ih+16>>2];if((mh|0)<0?1:(mh|0)<=0?qh>>>0>0?0:1:0){$a(ih,q[ih+4>>2],nh,nh+1|0);qh=q[ih+16>>2];mh=q[ih+20>>2]}o[nh|0]=og;if((mh|0)<0?1:(mh|0)<=0?qh>>>0>0?0:1:0){$a(ih,q[ih+4>>2],nh,nh+1|0)}if((Dg(5)|0)!=(og|0)){if(!sh){break g}mh=0;th=ih+4|0;while(1){qh=q[ih+20>>2];if((qh|0)<0?1:(qh|0)<=0?t[ih+16>>2]>0?0:1:0){qh=q[nh+16>>2]+(mh<<2)|0;$a(ih,q[th>>2],qh,og+qh|0)}mh=mh+1|0;if((sh|0)!=(mh|0)){continue}break}break g}og=q[ih+20>>2];if((og|0)>0?1:(og|0)>=0?t[ih+16>>2]<=0?0:1:0){break g}og=q[nh+16>>2];$a(ih,q[ih+4>>2],og,og+(sh<<2)|0)}mh=1;Ia=q[Ia+36>>2];if(!Ia){break f}n[q[q[Ia>>2]+40>>2]](Ia,ih)|0}Ia=q[nh+16>>2];if(!Ia){break b}q[nh+20>>2]=Ia;ij(Ia)}T=nh+32|0;return mh|0}Gi();F()}function xc(Ia,og,ih){Ia=Ia|0;og=og|0;ih=ih|0;var yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0;yh=og+4|0;zh=q[Ia+8>>2];Ah=zh+24|0;Bh=o[Ah|0];yc(Ia,q[yh>>2]-q[og>>2]>>2,Bh,ih);og=q[og>>2];Ch=q[yh>>2];if((og|0)!=(Ch|0)){Ia=q[Ia+32>>2];Dh=q[q[Ia>>2]>>2]+q[Ia+48>>2]|0;Ia=0;Eh=zh+68|0;while(1){ih=q[og>>2];yh=zh;if(!r[zh+84|0]){ih=q[q[Eh>>2]+(ih<<2)>>2]}if(!Lb(yh,ih,o[Ah|0],(Ia<<2)+Dh|0)){return 0}Ia=Ia+Bh|0;og=og+4|0;if((Ch|0)!=(og|0)){continue}break}}return 1}function yc(Ia,og,ih,Fh){var Gh=0,Hh=0,Ih=0,Jh=0;Gh=T-80|0;T=Gh;Hh=rb(Gh+16|0);Ih=q[q[Ia+8>>2]+56>>2];Jh=ih<<24>>24;ih=w(Dg(5),ih);sb(Hh,Ih,0,Jh,5,ih,ih>>31);ih=ui(96);Hh=vb(ih,Hh);q[Gh+8>>2]=ih;xb(Hh,og);q[Gh>>2]=0;ih=q[Gh+8>>2];q[Gh+8>>2]=0;Hh=Ia+32|0;og=q[Hh>>2];q[Hh>>2]=ih;a:{if(!og){q[Gh>>2]=0;break a}qa(og);og=q[Gh>>2];q[Gh>>2]=0;if(!og){break a}qa(og)}b:{if(!Fh){break b}Ia=q[Ia+32>>2];o[Ia+84|0]=0;ih=q[Ia+68>>2];og=q[Ia+72>>2]-ih>>2;if(og>>>0>>0){qb(Ia+68|0,Fh-og|0,2420);break b}if(og>>>0<=Fh>>>0){break b}q[Ia+72>>2]=ih+(Fh<<2)}Ia=q[Gh+8>>2];q[Gh+8>>2]=0;if(Ia){qa(Ia)}T=Gh+80|0}function zc(Ia){Ia=Ia|0;var og=0,ih=0;q[Ia>>2]=2204;ih=Ia+36|0;og=q[ih>>2];q[ih>>2]=0;if(og){n[q[q[og>>2]+4>>2]](og)}q[Ia>>2]=1884;ih=Ia+32|0;og=q[ih>>2];q[ih>>2]=0;if(og){qa(og)}og=q[Ia+16>>2];if(og){q[Ia+20>>2]=og;ij(og)}return Ia|0}function Ac(Ia){Ia=Ia|0;var Fh=0,Kh=0;q[Ia>>2]=2204;Kh=Ia+36|0;Fh=q[Kh>>2];q[Kh>>2]=0;if(Fh){n[q[q[Fh>>2]+4>>2]](Fh)}q[Ia>>2]=1884;Kh=Ia+32|0;Fh=q[Kh>>2];q[Kh>>2]=0;if(Fh){qa(Fh)}Fh=q[Ia+16>>2];if(Fh){q[Ia+20>>2]=Fh;ij(Fh)}ij(Ia)}function Bc(Ia,Lh,Mh,Nh,Oh){var Ph=0,Qh=0,Rh=0,Sh=0;Ph=T-32|0;T=Ph;Rh=q[q[q[Lh+4>>2]+8>>2]+(Nh<<2)>>2];a:{b:{if((n[q[q[Lh>>2]+8>>2]](Lh)|0)!=1|Mh+ -1>>>0>5){break b}Sh=n[q[q[Lh>>2]+52>>2]](Lh)|0;Qh=n[q[q[Lh>>2]+60>>2]](Lh,Nh)|0;if(!(Qh?Sh:0)){q[Ia>>2]=0;break a}Nh=n[q[q[Lh>>2]+56>>2]](Lh,Nh)|0;if(Nh){Lh=q[Lh+56>>2];q[Ph+20>>2]=Nh;q[Ph+16>>2]=Lh;q[Ph+28>>2]=Qh;q[Ph+24>>2]=Qh+12;Dc(Ia,Mh,Rh,Oh,Ph+16|0);if(q[Ia>>2]){break a}q[Ia>>2]=0;break b}Lh=q[Lh+56>>2];q[Ph+20>>2]=Sh;q[Ph+16>>2]=Lh;q[Ph+28>>2]=Qh;q[Ph+24>>2]=Qh+12;Ec(Ia,Mh,Rh,Oh,Ph+16|0);if(q[Ia>>2]){break a}q[Ia>>2]=0}q[Ia>>2]=0}T=Ph+32|0}function Cc(Ia,Lh,Mh){var Nh=0,Oh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0;q[Ia>>2]=3140;q[Ia+4>>2]=Lh;Lh=q[Mh+8>>2];Nh=q[Mh+12>>2];Oh=q[Mh+16>>2];Uh=q[Mh+20>>2];Vh=q[Mh>>2];Wh=q[Mh+4>>2];q[Ia+40>>2]=0;Th=Ia+32|0;q[Th>>2]=0;q[Th+4>>2]=0;q[Ia+24>>2]=Oh;q[Ia+28>>2]=Uh;q[Ia+16>>2]=Lh;q[Ia+20>>2]=Nh;q[Ia+8>>2]=Vh;q[Ia+12>>2]=Wh;a:{Lh=q[Mh+28>>2]-q[Mh+24>>2]|0;b:{if(!Lh){break b}Nh=Lh>>2;if(Nh>>>0>=1073741824){break a}Lh=ui(Lh);q[Ia+32>>2]=Lh;Oh=Ia+36|0;q[Oh>>2]=Lh;q[Ia+40>>2]=Lh+(Nh<<2);Nh=q[Mh+24>>2];Mh=q[Mh+28>>2]-Nh|0;if((Mh|0)<1){break b}Xh=Oh,Yh=oj(Lh,Nh,Mh)+Mh|0,q[Xh>>2]=Yh}q[Ia>>2]=5776;return}Gi();F()}function Dc(Ia,Lh,Mh,Zh,_h){var $h=0;a:{Lh=Lh+ -1|0;b:{if(Lh>>>0>5){break b}c:{switch(Lh-1|0){default:Lh=ui(60);Fc(Lh,Mh,Zh,_h);q[Lh>>2]=2432;break a;case 2:Lh=ui(168);Gc(Lh,Mh,Zh,_h);break a;case 3:Lh=ui(104);Fc(Lh,Mh,Zh,_h);q[Lh+76>>2]=0;q[Lh+80>>2]=0;q[Lh+60>>2]=0;q[Lh+64>>2]=0;q[Lh>>2]=3444;q[Lh+84>>2]=0;Mh=q[_h+4>>2];q[Lh+88>>2]=q[_h>>2];q[Lh+92>>2]=Mh;Mh=q[_h+12>>2];q[Lh+96>>2]=q[_h+8>>2];q[Lh+100>>2]=Mh;break a;case 0:case 1:break b;case 4:break c}}$h=ui(140);Fc($h,Mh,Zh,_h);q[$h>>2]=3680;Lh=$h- -64|0;q[Lh>>2]=0;q[Lh+4>>2]=0;Lh=q[_h+4>>2];q[$h+72>>2]=q[_h>>2];q[$h+76>>2]=Lh;Lh=q[_h+12>>2];q[$h+80>>2]=q[_h+8>>2];q[$h+84>>2]=Lh;q[$h+92>>2]=-1;q[$h+96>>2]=-1;q[$h+88>>2]=1;q[$h+60>>2]=3916;q[$h+100>>2]=-1;q[$h+104>>2]=-1;we($h+108|0)}q[Ia>>2]=$h;return}q[Ia>>2]=Lh}function Ec(Ia,Lh,Mh,Zh,_h){var ai=0;a:{Lh=Lh+ -1|0;b:{if(Lh>>>0>5){break b}c:{switch(Lh-1|0){default:Lh=ui(60);Hc(Lh,Mh,Zh,_h);q[Lh>>2]=4308;break a;case 2:Lh=ui(168);Ic(Lh,Mh,Zh,_h);break a;case 3:Lh=ui(104);Hc(Lh,Mh,Zh,_h);q[Lh+76>>2]=0;q[Lh+80>>2]=0;q[Lh+60>>2]=0;q[Lh+64>>2]=0;q[Lh>>2]=4968;q[Lh+84>>2]=0;Mh=q[_h+4>>2];q[Lh+88>>2]=q[_h>>2];q[Lh+92>>2]=Mh;Mh=q[_h+12>>2];q[Lh+96>>2]=q[_h+8>>2];q[Lh+100>>2]=Mh;break a;case 0:case 1:break b;case 4:break c}}ai=ui(140);Hc(ai,Mh,Zh,_h);q[ai>>2]=5192;Lh=ai- -64|0;q[Lh>>2]=0;q[Lh+4>>2]=0;Lh=q[_h+4>>2];q[ai+72>>2]=q[_h>>2];q[ai+76>>2]=Lh;Lh=q[_h+12>>2];q[ai+80>>2]=q[_h+8>>2];q[ai+84>>2]=Lh;q[ai+92>>2]=-1;q[ai+96>>2]=-1;q[ai+88>>2]=1;q[ai+60>>2]=5412;q[ai+100>>2]=-1;q[ai+104>>2]=-1;we(ai+108|0)}q[Ia>>2]=ai;return}q[Ia>>2]=Lh}function Fc(Ia,Lh,Mh,Zh){var _h=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0;q[Ia>>2]=3140;q[Ia+4>>2]=Lh;Lh=q[Mh+8>>2];_h=q[Mh+12>>2];bi=q[Mh+16>>2];di=q[Mh+20>>2];ei=q[Mh>>2];fi=q[Mh+4>>2];q[Ia+40>>2]=0;ci=Ia+32|0;q[ci>>2]=0;q[ci+4>>2]=0;q[Ia+24>>2]=bi;q[Ia+28>>2]=di;q[Ia+16>>2]=Lh;q[Ia+20>>2]=_h;q[Ia+8>>2]=ei;q[Ia+12>>2]=fi;a:{Lh=q[Mh+28>>2]-q[Mh+24>>2]|0;b:{if(!Lh){break b}_h=Lh>>2;if(_h>>>0>=1073741824){break a}Lh=ui(Lh);q[Ia+32>>2]=Lh;bi=Ia+36|0;q[bi>>2]=Lh;q[Ia+40>>2]=Lh+(_h<<2);_h=q[Mh+24>>2];Mh=q[Mh+28>>2]-_h|0;if((Mh|0)<1){break b}gi=bi,hi=oj(Lh,_h,Mh)+Mh|0,q[gi>>2]=hi}q[Ia>>2]=3084;Lh=q[Zh+4>>2];q[Ia+44>>2]=q[Zh>>2];q[Ia+48>>2]=Lh;Lh=q[Zh+12>>2];q[Ia+52>>2]=q[Zh+8>>2];q[Ia+56>>2]=Lh;return}Gi();F()}function Gc(Ia,Lh,Mh,Zh){Fc(Ia,Lh,Mh,Zh);q[Ia+60>>2]=0;q[Ia+64>>2]=0;q[Ia>>2]=3196;q[Ia+68>>2]=0;q[Ia+72>>2]=0;q[Ia+76>>2]=0;q[Ia+80>>2]=0;q[Ia+84>>2]=0;q[Ia+88>>2]=0;q[Ia+92>>2]=0;q[Ia+96>>2]=0;q[Ia+100>>2]=0;q[Ia+104>>2]=0;q[Ia+108>>2]=0;Fe(Ia+112|0);q[Ia+160>>2]=0;q[Ia+152>>2]=0;q[Ia+156>>2]=0}function Hc(Ia,Lh,Mh,Zh){var ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0;q[Ia>>2]=3140;q[Ia+4>>2]=Lh;Lh=q[Mh+8>>2];ii=q[Mh+12>>2];ji=q[Mh+16>>2];li=q[Mh+20>>2];mi=q[Mh>>2];ni=q[Mh+4>>2];q[Ia+40>>2]=0;ki=Ia+32|0;q[ki>>2]=0;q[ki+4>>2]=0;q[Ia+24>>2]=ji;q[Ia+28>>2]=li;q[Ia+16>>2]=Lh;q[Ia+20>>2]=ii;q[Ia+8>>2]=mi;q[Ia+12>>2]=ni;a:{Lh=q[Mh+28>>2]-q[Mh+24>>2]|0;b:{if(!Lh){break b}ii=Lh>>2;if(ii>>>0>=1073741824){break a}Lh=ui(Lh);q[Ia+32>>2]=Lh;ji=Ia+36|0;q[ji>>2]=Lh;q[Ia+40>>2]=Lh+(ii<<2);ii=q[Mh+24>>2];Mh=q[Mh+28>>2]-ii|0;if((Mh|0)<1){break b}oi=ji,pi=oj(Lh,ii,Mh)+Mh|0,q[oi>>2]=pi}q[Ia>>2]=4676;Lh=q[Zh+4>>2];q[Ia+44>>2]=q[Zh>>2];q[Ia+48>>2]=Lh;Lh=q[Zh+12>>2];q[Ia+52>>2]=q[Zh+8>>2];q[Ia+56>>2]=Lh;return}Gi();F()}function Ic(Ia,Lh,Mh,Zh){Hc(Ia,Lh,Mh,Zh);q[Ia+60>>2]=0;q[Ia+64>>2]=0;q[Ia>>2]=4732;q[Ia+68>>2]=0;q[Ia+72>>2]=0;q[Ia+76>>2]=0;q[Ia+80>>2]=0;q[Ia+84>>2]=0;q[Ia+88>>2]=0;q[Ia+92>>2]=0;q[Ia+96>>2]=0;q[Ia+100>>2]=0;q[Ia+104>>2]=0;q[Ia+108>>2]=0;Fe(Ia+112|0);q[Ia+160>>2]=0;q[Ia+152>>2]=0;q[Ia+156>>2]=0}function Jc(Ia){Ia=Ia|0;var Lh=0;q[Ia>>2]=3140;Lh=q[Ia+32>>2];if(Lh){q[Ia+36>>2]=Lh;ij(Lh)}return Ia|0}function Kc(Ia){Ia=Ia|0;var Mh=0;q[Ia>>2]=3140;Mh=q[Ia+32>>2];if(Mh){q[Ia+36>>2]=Mh;ij(Mh)}ij(Ia)}function Lc(Ia){Ia=Ia|0;return q[Ia+4>>2]}function Mc(Ia){Ia=Ia|0;var Zh=0;if(!(!q[Ia+52>>2]|(!q[Ia+44>>2]|!q[Ia+48>>2]))){Zh=q[Ia+56>>2]!=0}return Zh|0}function Nc(q,Ia){q=q|0;Ia=Ia|0;return-1}function Oc(Ia,qi){Ia=Ia|0;qi=qi|0;var ri=0,si=0,ti=0,ui=0;ri=T-16|0;T=ri;q[ri+12>>2]=q[Ia+12>>2];si=q[qi+20>>2];ti=si;ui=q[qi+16>>2];if((si|0)<0?1:(si|0)<=0?ui>>>0>0?0:1:0){$a(qi,q[qi+4>>2],ri+12|0,ri+16|0);ui=q[qi+16>>2];ti=q[qi+20>>2]}q[ri+8>>2]=q[Ia+16>>2];if((ti|0)<0?1:(ti|0)<=0?ui>>>0>0?0:1:0){$a(qi,q[qi+4>>2],ri+8|0,ri+12|0)}T=ri+16|0;return 1}function Pc(Ia,qi,vi,wi,xi,yi){Ia=Ia|0;qi=qi|0;vi=vi|0;wi=wi|0;xi=xi|0;yi=yi|0;var zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0;q[Ia+8>>2]=xi;zi=Ia+32|0;Di=q[zi>>2];yi=q[Ia+36>>2]-Di>>2;a:{if(yi>>>0>>0){Qc(zi,xi-yi|0);break a}if(yi>>>0<=xi>>>0){break a}q[Ia+36>>2]=Di+(xi<<2)}b:{if(!wi){break b}Di=1;zi=q[qi>>2];c:{if((wi|0)<=1){yi=zi;break c}yi=zi;while(1){Bi=q[(Di<<2)+qi>>2];Ii=(Bi|0)<(yi|0);yi=Ii?Bi:yi;zi=Ii?zi:(Bi|0)>(zi|0)?Bi:zi;Di=Di+1|0;if((Di|0)!=(wi|0)){continue}break}}q[Ia+16>>2]=zi;q[Ia+12>>2]=yi;wi=(zi>>31)-((yi>>31)+(zi>>>0>>0)|0)|0;yi=zi-yi|0;if(!wi&yi>>>0>2147483646|wi>>>0>0){break b}wi=yi+1|0;q[Ia+20>>2]=wi;zi=Ia+24|0;yi=(wi|0)/2|0;q[zi>>2]=yi;q[Ia+28>>2]=0-yi;if(wi&1){break b}q[zi>>2]=yi+ -1}wi=(xi&1073741823)!=(xi|0)?-1:xi<<2;Di=pj(ui(wi),0,wi);wi=q[Ia+56>>2];Ni=q[wi>>2];wi=q[wi+4>>2]-Ni|0;if((wi|0)>=5){Mi=q[Ia+48>>2];Ui=q[Ia+52>>2];Gi=Ia+8|0;Ji=Ia+16|0;Ki=Ia+32|0;Qi=Ia+12|0;Ri=Ia+28|0;Li=Ia+20|0;Si=Ia+24|0;Ti=wi>>2;Bi=Ti;while(1){Ii=Bi;d:{e:{Bi=Bi+ -1|0;if(Ti>>>0>Bi>>>0){yi=w(xi,Bi);wi=q[(Bi<<2)+Ni>>2];if((wi|0)==-1|q[q[Mi>>2]+(wi>>>3&536870908)>>2]>>>(wi&31)&1){break e}wi=q[q[q[Mi+64>>2]+12>>2]+(wi<<2)>>2];if((wi|0)==-1){break e}Ai=q[Ui>>2];zi=q[Mi+28>>2];Ci=q[Ai+(q[zi+(wi<<2)>>2]<<2)>>2];if((Ci|0)>=(Bi|0)){break e}Ei=wi+1|0;Ei=q[Ai+(q[zi+(((Ei>>>0)%3|0?Ei:wi+ -2|0)<<2)>>2]<<2)>>2];if((Ei|0)>=(Bi|0)){break e}wi=q[Ai+(q[zi+(wi+((wi>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((wi|0)>=(Bi|0)){break e}if((xi|0)>=1){wi=w(wi,xi);Ai=w(xi,Ei);Ci=w(xi,Ci);zi=0;while(1){q[(zi<<2)+Di>>2]=(q[(wi+zi<<2)+qi>>2]+q[(zi+Ai<<2)+qi>>2]|0)-q[(zi+Ci<<2)+qi>>2];zi=zi+1|0;if((zi|0)!=(xi|0)){continue}break}}wi=q[Gi>>2];if((wi|0)<1){break d}yi=yi<<2;Oi=yi+vi|0;Pi=qi+yi|0;yi=Di;Ai=0;while(1){zi=0;f:{if((wi|0)<=0){wi=q[Ki>>2];break f}while(1){Ci=zi<<2;Ei=q[Ci+yi>>2];Fi=q[Ji>>2];g:{if((Ei|0)>(Fi|0)){wi=q[Ki>>2];q[Ci+wi>>2]=Fi;break g}wi=q[Ki>>2];Ci=Ci+wi|0;Fi=q[Qi>>2];if((Ei|0)<(Fi|0)){q[Ci>>2]=Fi;break g}q[Ci>>2]=Ei}zi=zi+1|0;if((zi|0)>2]){continue}break}}zi=Ai<<2;yi=zi+Oi|0;zi=q[zi+Pi>>2]-q[wi+zi>>2]|0;q[yi>>2]=zi;h:{if((zi|0)>2]){zi=zi+q[Li>>2]|0}else{if((zi|0)<=q[Si>>2]){break h}zi=zi-q[Li>>2]|0}q[yi>>2]=zi}yi=wi;Ai=Ai+1|0;wi=q[Gi>>2];if((Ai|0)<(wi|0)){continue}break}break d}Hi();F()}wi=q[Gi>>2];if((wi|0)<1){break d}yi=yi<<2;Oi=yi+vi|0;Pi=qi+yi|0;yi=(w(Ii+ -2|0,xi)<<2)+qi|0;Ai=0;while(1){zi=0;i:{if((wi|0)<=0){wi=q[Ki>>2];break i}while(1){Ci=zi<<2;Ei=q[Ci+yi>>2];Fi=q[Ji>>2];j:{if((Ei|0)>(Fi|0)){wi=q[Ki>>2];q[Ci+wi>>2]=Fi;break j}wi=q[Ki>>2];Ci=Ci+wi|0;Fi=q[Qi>>2];if((Ei|0)<(Fi|0)){q[Ci>>2]=Fi;break j}q[Ci>>2]=Ei}zi=zi+1|0;if((zi|0)>2]){continue}break}}zi=Ai<<2;yi=zi+Oi|0;zi=q[zi+Pi>>2]-q[wi+zi>>2]|0;q[yi>>2]=zi;k:{if((zi|0)>2]){zi=zi+q[Li>>2]|0}else{if((zi|0)<=q[Si>>2]){break k}zi=zi-q[Li>>2]|0}q[yi>>2]=zi}yi=wi;Ai=Ai+1|0;wi=q[Gi>>2];if((Ai|0)<(wi|0)){continue}break}}if((Ii|0)>2){continue}break}}if((xi|0)>=1){pj(Di,0,xi<<2)}Bi=Ia+8|0;wi=q[Bi>>2];if((wi|0)>=1){Ki=Ia+16|0;yi=Ia+32|0;Li=Ia+12|0;Mi=Ia+28|0;Ii=Ia+20|0;Ni=Ia+24|0;Ia=Di;Ai=0;while(1){zi=0;l:{if((wi|0)<=0){wi=q[yi>>2];break l}while(1){xi=zi<<2;Gi=q[xi+Ia>>2];Ji=q[Ki>>2];m:{if((Gi|0)>(Ji|0)){wi=q[yi>>2];q[xi+wi>>2]=Ji;break m}wi=q[yi>>2];xi=xi+wi|0;Ji=q[Li>>2];if((Gi|0)<(Ji|0)){q[xi>>2]=Ji;break m}q[xi>>2]=Gi}zi=zi+1|0;if((zi|0)>2]){continue}break}}xi=Ai<<2;Ia=xi+vi|0;xi=q[qi+xi>>2]-q[wi+xi>>2]|0;q[Ia>>2]=xi;n:{if((xi|0)>2]){xi=xi+q[Ii>>2]|0}else{if((xi|0)<=q[Ni>>2]){break n}xi=xi-q[Ii>>2]|0}q[Ia>>2]=xi}Ia=wi;Ai=Ai+1|0;wi=q[Bi>>2];if((Ai|0)<(wi|0)){continue}break}}ij(Di);return 1}function Qc(Ia,qi){var vi=0,wi=0,xi=0,yi=0,Hi=0,Vi=0,Wi=0,Xi=0,Yi=0;wi=q[Ia+8>>2];xi=Ia+4|0;vi=q[xi>>2];if(wi-vi>>2>>>0>=qi>>>0){Ia=qi<<2;Xi=xi,Yi=pj(vi,0,Ia)+Ia|0,q[Xi>>2]=Yi;return}a:{xi=q[Ia>>2];Hi=vi-xi|0;vi=Hi>>2;yi=vi+qi|0;if(yi>>>0<1073741824){Wi=vi<<2;wi=wi-xi|0;vi=wi>>1;wi=wi>>2>>>0<536870911?vi>>>0>>0?yi:vi:1073741823;vi=0;b:{if(!wi){break b}if(wi>>>0>=1073741824){break a}Vi=ui(wi<<2);vi=Vi}pj(Wi+vi|0,0,qi<<2);qi=vi+(yi<<2)|0;yi=vi+(wi<<2)|0;if((Hi|0)>=1){oj(Vi,xi,Hi)}q[Ia>>2]=vi;q[Ia+8>>2]=yi;q[Ia+4>>2]=qi;if(xi){ij(xi)}return}Gi();F()}ob(2352);F()}function Rc(Ia){Ia=Ia|0;var qi=0;q[Ia>>2]=3196;qi=q[Ia+152>>2];if(qi){q[Ia+156>>2]=qi;ij(qi)}qi=q[Ia+112>>2];if(qi){q[Ia+116>>2]=qi;ij(qi)}qi=q[Ia+96>>2];if(qi){ij(qi)}qi=q[Ia+84>>2];if(qi){ij(qi)}qi=q[Ia+72>>2];if(qi){ij(qi)}qi=q[Ia+60>>2];if(qi){ij(qi)}q[Ia>>2]=3140;qi=q[Ia+32>>2];if(qi){q[Ia+36>>2]=qi;ij(qi)}return Ia|0}function Sc(q){q=q|0;ij(Rc(q))}function Tc(q){q=q|0;return 4}function Uc(Ia,Zi){Ia=Ia|0;Zi=Zi|0;var _i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0;$i=T-32|0;T=$i;dj=1;while(1){cj=w(_i,12)+Ia|0;aj=cj- -64|0;Db(q[aj>>2],Zi);_i=_i+1|0;if(q[aj>>2]){bj=we($i);ze(bj);aj=q[aj>>2]-_i|0;if((aj|0)>=0){fj=cj+60|0;while(1){cj=0;while(1){ej=aj+cj|0;Ae(bj,q[q[fj>>2]+(ej>>>3&536870908)>>2]>>>(ej&31)&1);cj=cj+1|0;if((dj|0)!=(cj|0)){continue}break}aj=aj-_i|0;if((aj|0)>=0){continue}break}}Be(bj,Zi);xe(bj)}dj=dj+1|0;if((_i|0)!=4){continue}break}q[$i>>2]=q[Ia+12>>2];dj=q[Zi+20>>2];_i=dj;bj=q[Zi+16>>2];if((_i|0)<0?1:(_i|0)<=0?bj>>>0>0?0:1:0){$a(Zi,q[Zi+4>>2],$i,$i+4|0);bj=q[Zi+16>>2];_i=q[Zi+20>>2]}q[$i>>2]=q[Ia+16>>2];if((_i|0)<0?1:(_i|0)<=0?bj>>>0>0?0:1:0){$a(Zi,q[Zi+4>>2],$i,$i+4|0)}T=$i+32|0;return 1}function Vc(Ia,Zi,gj,hj,jj,kj){Ia=Ia|0;Zi=Zi|0;gj=gj|0;hj=hj|0;jj=jj|0;kj=kj|0;var lj=0,mj=0,nj=0,oj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0,Fj=0,Gj=0,Hj=0,Ij=0,Jj=0,Kj=0,Lj=0,Mj=0,Nj=0,Oj=0,Pj=0,Rj=0,Sj=0,Tj=0,Uj=0,Vj=0,Wj=0,Xj=0,Yj=0,Zj=0,_j=0,$j=0;mj=T-240|0;T=mj;q[Ia+8>>2]=jj;nj=Ia+32|0;lj=q[nj>>2];kj=q[Ia+36>>2]-lj>>2;a:{if(kj>>>0>>0){Qc(nj,jj-kj|0);break a}if(kj>>>0<=jj>>>0){break a}q[Ia+36>>2]=lj+(jj<<2)}b:{if(!hj){break b}oj=1;lj=q[Zi>>2];c:{if((hj|0)<=1){nj=lj;break c}nj=lj;while(1){kj=q[(oj<<2)+Zi>>2];qj=(kj|0)<(nj|0);nj=qj?kj:nj;lj=qj?lj:(kj|0)>(lj|0)?kj:lj;oj=oj+1|0;if((oj|0)!=(hj|0)){continue}break}}q[Ia+16>>2]=lj;q[Ia+12>>2]=nj;hj=nj;kj=(lj>>31)-((lj>>>0>>0)+(hj>>31)|0)|0;hj=lj-hj|0;if(!kj&hj>>>0>2147483646|kj>>>0>0){break b}hj=hj+1|0;q[Ia+20>>2]=hj;nj=Ia+24|0;kj=(hj|0)/2|0;q[nj>>2]=kj;q[Ia+28>>2]=0-kj;if(hj&1){break b}q[nj>>2]=kj+ -1}Tj=q[Ia+52>>2];xj=q[Ia+48>>2];q[mj+200>>2]=0;q[mj+204>>2]=0;q[mj+192>>2]=0;q[mj+196>>2]=0;q[mj+184>>2]=0;q[mj+188>>2]=0;hj=mj+176|0;q[hj>>2]=0;q[hj+4>>2]=0;q[mj+168>>2]=0;q[mj+172>>2]=0;q[mj+160>>2]=0;q[mj+164>>2]=0;d:{if(!jj){oj=0;hj=0;break d}Qc(mj+160|0,jj);oj=q[hj>>2];hj=q[mj+172>>2]}kj=oj-hj>>2;e:{if(kj>>>0>=jj>>>0){if(kj>>>0<=jj>>>0){break e}q[mj+176>>2]=hj+(jj<<2);break e}Qc(mj+160|12,jj-kj|0)}kj=q[mj+184>>2];hj=q[mj+188>>2]-kj>>2;f:{if(hj>>>0>=jj>>>0){if(hj>>>0<=jj>>>0){break f}q[mj+188>>2]=kj+(jj<<2);break f}Qc(mj+184|0,jj-hj|0)}kj=q[mj+196>>2];hj=q[mj+200>>2]-kj>>2;g:{if(hj>>>0>=jj>>>0){if(hj>>>0<=jj>>>0){break g}q[mj+200>>2]=kj+(jj<<2);break g}Qc(mj+196|0,jj-hj|0)}q[mj+152>>2]=0;q[mj+144>>2]=0;q[mj+148>>2]=0;h:{i:{if(jj){if(jj>>>0>=1073741824){break i}hj=jj<<2;kj=ui(hj);q[mj+144>>2]=kj;nj=hj+kj|0;q[mj+152>>2]=nj;pj(kj,0,hj);q[mj+148>>2]=nj}Hj=Ia+152|0;kj=q[Ia+152>>2];hj=q[Ia+156>>2]-kj>>2;j:{if(hj>>>0>>0){Qc(Hj,jj-hj|0);break j}if(hj>>>0<=jj>>>0){break j}q[Ia+156>>2]=kj+(jj<<2)}q[mj+120>>2]=0;q[mj+124>>2]=0;q[mj+112>>2]=0;q[mj+116>>2]=0;q[mj+104>>2]=0;q[mj+108>>2]=0;q[mj+96>>2]=0;q[mj+100>>2]=0;q[mj+88>>2]=0;q[mj+92>>2]=0;q[mj+80>>2]=0;q[mj+84>>2]=0;q[mj+72>>2]=0;q[mj+76>>2]=0;q[mj+64>>2]=0;q[mj+68>>2]=0;q[mj+56>>2]=0;q[mj+48>>2]=0;q[mj+52>>2]=0;if(jj){hj=jj<<2;Dj=ui(hj);q[mj+48>>2]=Dj;Ij=hj+Dj|0;q[mj+56>>2]=Ij;pj(Dj,0,hj);q[mj+52>>2]=Ij}hj=q[Ia+56>>2];oj=q[hj>>2];hj=q[hj+4>>2]-oj|0;if((hj|0)<5){break h}Ej=hj>>>2;nj=Ej+ -1|0;if(hj>>2>>>0>nj>>>0){Lj=jj<<2;Jj=Ia+112|0;Uj=mj+141|0;Mj=mj+36|0;Nj=mj+24|0;yj=mj+20|0;Vj=yj+24|0;Oj=yj+16|0;Kj=Ia+152|0;Wj=Ia+28|0;Pj=Ia+20|0;while(1){kj=0;zj=nj;hj=q[(nj<<2)+oj>>2];k:{if((hj|0)==-1){break k}qj=hj+((hj>>>0)%3|0?-1:2)|0;vj=qj>>>5;nj=1;Aj=1<<(qj&31);tj=q[xj>>2];rj=0;oj=hj;while(1){l:{if(q[tj+(oj>>>3&536870908)>>2]>>>(oj&31)&1){break l}kj=q[q[q[xj+64>>2]+12>>2]+(oj<<2)>>2];if((kj|0)==-1){break l}sj=q[Tj>>2];lj=q[xj+28>>2];Bj=q[sj+(q[lj+(kj<<2)>>2]<<2)>>2];if((Bj|0)>=(zj|0)){break l}uj=kj+1|0;uj=q[sj+(q[lj+(((uj>>>0)%3|0?uj:kj+ -2|0)<<2)>>2]<<2)>>2];if((uj|0)>=(zj|0)){break l}kj=q[sj+(q[lj+(kj+((kj>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((kj|0)>=(zj|0)){break l}if((jj|0)>=1){sj=q[(mj+160|0)+w(rj,12)>>2];kj=w(jj,kj);uj=w(jj,uj);Bj=w(jj,Bj);lj=0;while(1){q[sj+(lj<<2)>>2]=(q[(kj+lj<<2)+Zi>>2]+q[(lj+uj<<2)+Zi>>2]|0)-q[(lj+Bj<<2)+Zi>>2];lj=lj+1|0;if((lj|0)!=(jj|0)){continue}break}}kj=4;rj=rj+1|0;if((rj|0)==4){break k}}m:{if(nj&1){lj=-1;kj=oj+1|0;kj=(kj>>>0)%3|0?kj:oj+ -2|0;if((kj|0)==-1|q[q[xj>>2]+(kj>>>3&536870908)>>2]>>>(kj&31)&1){break m}kj=q[q[q[xj+64>>2]+12>>2]+(kj<<2)>>2];if((kj|0)==-1){break m}lj=kj+1|0;lj=(lj>>>0)%3|0?lj:kj+ -2|0;break m}lj=-1;kj=((oj>>>0)%3|0?-1:2)+oj|0;if((kj|0)==-1|q[q[xj>>2]+(kj>>>3&536870908)>>2]>>>(kj&31)&1){break m}kj=q[q[q[xj+64>>2]+12>>2]+(kj<<2)>>2];if((kj|0)==-1){break m}if((kj>>>0)%3){lj=kj+ -1|0;break m}lj=kj+2|0}if((hj|0)==(lj|0)){kj=rj;break k}oj=lj;kj=(lj|0)!=-1;lj=(kj|nj^-1)&1;oj=lj?oj:-1;nj=kj&nj;if(!((qj|0)==-1|lj)){if(Aj&q[q[xj>>2]+(vj<<2)>>2]){kj=rj;break k}kj=q[q[q[xj+64>>2]+12>>2]+(qj<<2)>>2];if((kj|0)==-1){kj=rj;break k}if((kj>>>0)%3){oj=kj+ -1|0}else{oj=kj+2|0}nj=0}kj=rj;if((oj|0)!=-1){continue}break}}oj=0;o[mj+16|0]=0;q[mj+8>>2]=0;q[mj+12>>2]=0;q[Vj>>2]=0;q[Oj>>2]=0;q[Oj+4>>2]=0;hj=yj;q[hj+8>>2]=0;q[hj+12>>2]=0;q[hj>>2]=0;q[hj+4>>2]=0;Rj=w(jj,zj)<<2;Bj=Rj+Zi|0;rj=(w(Ej+ -2|0,jj)<<2)+Zi|0;qj=q[Kj>>2];nj=0;if((jj|0)>0){while(1){lj=nj<<2;hj=q[lj+rj>>2]-q[lj+Bj>>2]|0;q[lj+Dj>>2]=hj;Aj=lj+qj|0;lj=hj>>31;q[Aj>>2]=lj^hj<<1;oj=(lj^hj+lj)+oj|0;nj=nj+1|0;if((nj|0)!=(jj|0)){continue}break}}Ge(mj+216|0,Jj,qj,jj);hj=Je(mj+216|0);lj=V;qj=Ke(mj+216|0);nj=qj+hj|0;hj=V+lj|0;hj=nj>>>0>>0?hj+1|0:hj;lj=nj;uj=(kj|0)>0;if(uj){sj=(kj<<3)+ -8|0;qj=sj+(mj- -64|0)|0;vj=qj;Fj=qj;nj=q[qj+4>>2];Aj=kj+q[qj>>2]|0;if(Aj>>>0>>0){nj=nj+1|0}qj=Aj;q[Fj>>2]=qj;q[vj+4>>2]=nj;wj=D(Ee(qj,q[sj+(mj+96|0)>>2])*(+(qj>>>0)+4294967296*+(nj|0)));n:{if(y(wj)<0x8000000000000000){qj=y(wj)>=1?wj>0?~~A(C(wj/4294967296),4294967295)>>>0:~~D((wj- +(~~wj>>>0>>>0))/4294967296)>>>0:0;nj=~~wj>>>0;break n}qj=-2147483648;nj=0}hj=hj+qj|0;nj=lj+nj|0;if(nj>>>0>>0){hj=hj+1|0}lj=nj}q[mj+20>>2]=0;o[mj+16|0]=0;q[mj+8>>2]=lj;q[mj+12>>2]=oj;ib(Nj,rj,rj+Lj|0);Wc(Mj,Dj,Ij);if((kj|0)>=1){vj=(mj+140|0)+kj|0;Aj=vj+ -2|0;sj=vj+ -1|0;hj=(kj<<3)+ -8|0;Sj=hj+(mj- -64|0)|0;Xj=hj+(mj+96|0)|0;rj=1;Gj=0;while(1){pj(mj+140|0,1,kj);Gj=Gj+1|0;pj(mj+140|0,0,Gj);Yj=q[mj+52>>2];Zj=q[mj+48>>2];o:{p:while(1){nj=(jj|0)<1;if(!nj){pj(q[mj+144>>2],0,Lj)}hj=0;qj=q[mj+144>>2];tj=0;while(1){if(!r[(mj+140|0)+hj|0]){if(!nj){oj=q[(mj+160|0)+w(hj,12)>>2];lj=0;while(1){Cj=lj<<2;Fj=Cj+qj|0;q[Fj>>2]=q[Fj>>2]+q[oj+Cj>>2];lj=lj+1|0;if((lj|0)!=(jj|0)){continue}break}}tj=1<0){Cj=q[mj+144>>2];while(1){hj=Cj+(lj<<2)|0;q[hj>>2]=q[hj>>2]/(rj|0);lj=lj+1|0;if((lj|0)!=(jj|0)){continue}break}qj=0;hj=q[Kj>>2];if((jj|0)<=0){break q}nj=0;while(1){oj=nj<<2;lj=q[oj+Cj>>2]-q[oj+Bj>>2]|0;q[oj+Dj>>2]=lj;Fj=hj+oj|0;oj=lj>>31;q[Fj>>2]=oj^lj<<1;qj=(oj^lj+oj)+qj|0;nj=nj+1|0;if((nj|0)!=(jj|0)){continue}break}break q}hj=q[Kj>>2];qj=0}Ge(mj+216|0,Jj,hj,jj);nj=Je(mj+216|0)+Ke(mj+216|0)|0;lj=nj;if(uj){hj=q[Sj+4>>2];nj=q[Sj>>2];wj=D(Ee(nj,q[Xj>>2]+rj|0)*(+(nj>>>0)+4294967296*+(hj|0)));r:{if(y(wj)<0x8000000000000000){hj=~~wj>>>0;break r}hj=0}lj=hj+lj|0}hj=q[mj+8>>2];if(!((lj|0)>(hj|0)|(qj|0)>=q[mj+12>>2]?(lj|0)>=(hj|0):0)){q[mj+20>>2]=rj;o[mj+16|0]=tj;q[mj+8>>2]=lj;q[mj+12>>2]=qj;Wc(Nj,q[mj+144>>2],q[mj+148>>2]);Wc(Mj,Zj,Yj)}if((sj|0)==(mj+140|0)){break o}oj=-1;hj=r[sj|0];lj=hj;while(1){qj=lj&255;nj=oj+ -1|0;tj=nj+vj|0;lj=r[tj|0];if(lj>>>0>>0){qj=sj;nj=vj;if(lj>>>0>=(hj&255)>>>0){while(1){hj=qj;qj=hj+ -1|0;Cj=nj+ -2|0;nj=hj;if(lj>>>0>=r[Cj|0]){continue}break}hj=1}nj=oj+vj|0;o[tj|0]=hj;o[qj|0]=lj;lj=sj;if((oj|0)==-1){continue p}while(1){hj=r[nj|0];o[nj|0]=r[lj|0];o[lj|0]=hj;nj=nj+1|0;lj=lj+ -1|0;if(nj>>>0>>0){continue}break}continue p}oj=nj;if((tj|0)!=(mj+140|0)){continue}break}break}if(sj>>>0<=mj+140>>>0){break o}nj=r[mj+140|0];o[mj+140|0]=hj;o[sj|0]=nj;oj=Uj;lj=Aj;if(oj>>>0>=lj>>>0){break o}while(1){hj=r[oj|0];o[oj|0]=r[lj|0];o[lj|0]=hj;oj=oj+1|0;lj=lj+ -1|0;if(oj>>>0>>0){continue}break}}rj=rj+1|0;if((kj|0)!=(Gj|0)){continue}break}}if(uj){hj=((kj<<3)+mj|0)+88|0;lj=hj;qj=q[mj+20>>2];oj=qj;nj=oj+q[hj>>2]|0;hj=q[hj+4>>2]+(oj>>31)|0;q[lj>>2]=nj;q[lj+4>>2]=nj>>>0>>0?hj+1|0:hj}s:{if((jj|0)<=0){nj=q[Hj>>2];break s}nj=q[Hj>>2];lj=0;qj=q[mj+36>>2];while(1){oj=lj<<2;hj=q[oj+qj>>2];q[nj+oj>>2]=hj<<1^hj>>31;lj=lj+1|0;if((lj|0)!=(jj|0)){continue}break}}Ie(mj+216|0,Jj,nj,jj);t:{if(!uj){break t}hj=w(kj,12)+Ia|0;sj=hj+56|0;qj=hj+52|0;hj=hj+48|0;oj=0;while(1){u:{rj=q[sj>>2];nj=rj<<5;lj=q[qj>>2];v:{if(!(r[mj+16|0]>>>oj&1)){if((lj|0)==(nj|0)){if((lj+1|0)<=-1){break u}nj=hj;if(lj>>>0<=1073741822){lj=lj+32&-32;rj=rj<<6;lj=rj>>>0>>0?lj:rj}else{lj=2147483647}oc(nj,lj);lj=q[qj>>2]}q[qj>>2]=lj+1;nj=q[hj>>2]+(lj>>>3&536870908)|0;q[nj>>2]=q[nj>>2]|1<<(lj&31);break v}if((lj|0)==(nj|0)){if((lj+1|0)<=-1){break u}nj=hj;if(lj>>>0<=1073741822){lj=lj+32&-32;rj=rj<<6;lj=rj>>>0>>0?lj:rj}else{lj=2147483647}oc(nj,lj);lj=q[qj>>2]}q[qj>>2]=lj+1;nj=q[hj>>2]+(lj>>>3&536870908)|0;rj=q[nj>>2];_j=nj,$j=Qj(lj)&rj,q[_j>>2]=$j}oj=oj+1|0;if((oj|0)!=(kj|0)){continue}break t}break}Gi();F()}nj=Ia+8|0;oj=q[nj>>2];if((oj|0)>=1){rj=gj+Rj|0;kj=q[mj+24>>2];tj=0;while(1){lj=0;w:{if((oj|0)<=0){qj=q[Ia+32>>2];break w}while(1){hj=lj<<2;oj=q[hj+kj>>2];sj=q[Ia+16>>2];x:{if((oj|0)>(sj|0)){qj=q[Ia+32>>2];q[hj+qj>>2]=sj;break x}qj=q[Ia+32>>2];hj=hj+qj|0;sj=q[Ia+12>>2];if((oj|0)<(sj|0)){q[hj>>2]=sj;break x}q[hj>>2]=oj}lj=lj+1|0;if((lj|0)>2]){continue}break}}kj=tj<<2;hj=kj+rj|0;kj=q[kj+Bj>>2]-q[kj+qj>>2]|0;q[hj>>2]=kj;y:{if((kj|0)>2]){kj=kj+q[Pj>>2]|0}else{if((kj|0)<=q[Ia+24>>2]){break y}kj=kj-q[Pj>>2]|0}q[hj>>2]=kj}kj=qj;tj=tj+1|0;oj=q[nj>>2];if((tj|0)<(oj|0)){continue}break}}hj=q[mj+36>>2];if(hj){q[mj+40>>2]=hj;ij(hj)}hj=q[mj+24>>2];if(hj){q[mj+28>>2]=hj;ij(hj)}if((Ej|0)<3){break h}Ej=zj;hj=q[Ia+56>>2];oj=q[hj>>2];nj=zj+ -1|0;if(q[hj+4>>2]-oj>>2>>>0>nj>>>0){continue}break}}Hi();F()}Gi();F()}lj=0;qj=q[mj+160>>2];if((jj|0)>0){while(1){q[(lj<<2)+qj>>2]=0;lj=lj+1|0;if((lj|0)!=(jj|0)){continue}break}}nj=Ia+8|0;oj=q[nj>>2];if((oj|0)>=1){zj=Ia+16|0;kj=Ia+32|0;sj=Ia+12|0;vj=Ia+28|0;rj=Ia+20|0;Ej=Ia+24|0;Ia=0;while(1){lj=0;z:{if((oj|0)<=0){oj=q[kj>>2];break z}while(1){hj=lj<<2;jj=q[hj+qj>>2];yj=q[zj>>2];A:{if((jj|0)>(yj|0)){oj=q[kj>>2];q[hj+oj>>2]=yj;break A}oj=q[kj>>2];hj=hj+oj|0;yj=q[sj>>2];if((jj|0)<(yj|0)){q[hj>>2]=yj;break A}q[hj>>2]=jj}lj=lj+1|0;if((lj|0)>2]){continue}break}}jj=Ia<<2;hj=jj+gj|0;jj=q[Zi+jj>>2]-q[jj+oj>>2]|0;q[hj>>2]=jj;B:{if((jj|0)>2]){jj=jj+q[rj>>2]|0}else{if((jj|0)<=q[Ej>>2]){break B}jj=jj-q[rj>>2]|0}q[hj>>2]=jj}qj=oj;Ia=Ia+1|0;oj=q[nj>>2];if((Ia|0)<(oj|0)){continue}break}}Ia=q[mj+48>>2];if(Ia){q[mj+52>>2]=Ia;ij(Ia)}Ia=q[mj+144>>2];if(Ia){q[mj+148>>2]=Ia;ij(Ia)}Ia=q[mj+196>>2];if(Ia){q[mj+200>>2]=Ia;ij(Ia)}Ia=q[mj+184>>2];if(Ia){q[mj+188>>2]=Ia;ij(Ia)}Ia=q[mj+172>>2];if(Ia){q[mj+176>>2]=Ia;ij(Ia)}Ia=q[mj+160>>2];if(Ia){q[mj+164>>2]=Ia;ij(Ia)}T=mj+240|0;return 1}function Wc(Ia,Zi,gj){var hj=0,jj=0,kj=0,pj=0,Qj=0,ak=0;a:{kj=gj-Zi>>2;hj=q[Ia+8>>2];jj=q[Ia>>2];b:{if(kj>>>0<=hj-jj>>2>>>0){pj=q[Ia+4>>2]-jj|0;hj=pj+Zi|0;Qj=pj>>2;ak=kj>>>0>Qj>>>0?hj:gj;pj=ak-Zi|0;if(pj){qj(jj,Zi,pj)}if(kj>>>0>Qj>>>0){if((gj|0)==(ak|0)){break b}Zi=q[Ia+4>>2];while(1){q[Zi>>2]=q[hj>>2];Zi=Zi+4|0;hj=hj+4|0;if((hj|0)!=(gj|0)){continue}break}q[Ia+4>>2]=Zi;return}q[Ia+4>>2]=jj+(pj>>2<<2);return}if(jj){q[Ia+4>>2]=jj;ij(jj);q[Ia+8>>2]=0;q[Ia>>2]=0;q[Ia+4>>2]=0;hj=0}if(kj>>>0>=1073741824){break a}jj=hj>>1;hj=hj>>2>>>0<536870911?jj>>>0>>0?kj:jj:1073741823;if(hj>>>0>=1073741824){break a}jj=hj<<2;hj=ui(jj);q[Ia>>2]=hj;q[Ia+4>>2]=hj;q[Ia+8>>2]=hj+jj;if((Zi|0)==(gj|0)){break b}while(1){q[hj>>2]=q[Zi>>2];hj=hj+4|0;Zi=Zi+4|0;if((gj|0)!=(Zi|0)){continue}break}q[Ia+4>>2]=hj}return}Gi();F()}function Xc(Ia){Ia=Ia|0;var Zi=0;q[Ia>>2]=3444;Zi=q[Ia+76>>2];if(Zi){ij(Zi)}q[Ia>>2]=3140;Zi=q[Ia+32>>2];if(Zi){q[Ia+36>>2]=Zi;ij(Zi)}return Ia|0}function Yc(Ia){Ia=Ia|0;var gj=0;q[Ia>>2]=3444;gj=q[Ia+76>>2];if(gj){ij(gj)}q[Ia>>2]=3140;gj=q[Ia+32>>2];if(gj){q[Ia+36>>2]=gj;ij(gj)}ij(Ia)}function Zc(q){q=q|0;return 5}function _c(Ia){Ia=Ia|0;if(!(!q[Ia+60>>2]|!q[Ia+44>>2]|(!q[Ia+48>>2]|!q[Ia+52>>2]))){return q[Ia+56>>2]!=0|0}return 0}function $c(Ia,ij){Ia=Ia|0;ij=ij|0;var bk=0;if(!(q[ij+56>>2]|r[ij+24|0]!=3)){q[Ia+60>>2]=ij;bk=1}return bk|0}function ad(Ia,ij){Ia=Ia|0;ij=ij|0;var ck=0,dk=0,ek=0,fk=0,gk=0;ck=T-48|0;T=ck;q[ck+40>>2]=q[Ia+80>>2];fk=q[ij+20>>2];if((fk|0)<0?1:(fk|0)<=0?t[ij+16>>2]>0?0:1:0){$a(ij,q[ij+4>>2],ck+40|0,ck+44|0)}fk=we(ck+8|0);ze(fk);if(q[ck+40>>2]>=1){dk=1;while(1){gk=dk;dk=q[q[Ia+76>>2]+(ek>>>3&536870908)>>2]>>>(ek&31);Ae(fk,(gk^dk^-1)&1);dk=dk&1;ek=ek+1|0;if((ek|0)>2]){continue}break}}Be(fk,ij);q[ck+44>>2]=q[Ia+12>>2];dk=q[ij+20>>2];ek=dk;dk=q[ij+16>>2];if((ek|0)<0?1:(ek|0)<=0?dk>>>0>0?0:1:0){$a(ij,q[ij+4>>2],ck+44|0,ck+48|0);dk=q[ij+16>>2];ek=q[ij+20>>2]}q[ck+44>>2]=q[Ia+16>>2];if((ek|0)<0?1:(ek|0)<=0?dk>>>0>0?0:1:0){$a(ij,q[ij+4>>2],ck+44|0,ck+48|0)}xe(fk);T=ck+48|0;return 1}function bd(Ia,ij,hk,ik,jk,kk){Ia=Ia|0;ij=ij|0;hk=hk|0;ik=ik|0;jk=jk|0;kk=kk|0;var lk=0,mk=0,nk=0,ok=0,pk=0,qk=0,rk=0,sk=0,tk=0,uk=0,vk=0,wk=0,xk=0,yk=0,zk=0,Ak=0,Bk=0;q[Ia+8>>2]=jk;q[Ia- -64>>2]=kk;lk=Ia+32|0;mk=q[lk>>2];kk=q[Ia+36>>2]-mk>>2;a:{if(kk>>>0>>0){Qc(lk,jk-kk|0);break a}if(kk>>>0<=jk>>>0){break a}q[Ia+36>>2]=mk+(jk<<2)}b:{if(!ik){break b}mk=1;kk=q[ij>>2];c:{if((ik|0)<=1){lk=kk;break c}lk=kk;while(1){nk=q[(mk<<2)+ij>>2];ok=(nk|0)<(lk|0);lk=ok?nk:lk;kk=ok?kk:(nk|0)>(kk|0)?nk:kk;mk=mk+1|0;if((mk|0)!=(ik|0)){continue}break}}q[Ia+16>>2]=kk;q[Ia+12>>2]=lk;ik=(kk>>31)-((lk>>31)+(kk>>>0>>0)|0)|0;kk=kk-lk|0;if(!ik&kk>>>0>2147483646|ik>>>0>0){break b}ik=kk+1|0;q[Ia+20>>2]=ik;lk=Ia+24|0;kk=(ik|0)/2|0;q[lk>>2]=kk;q[Ia+28>>2]=0-kk;if(ik&1){break b}q[lk>>2]=kk+ -1}kk=q[Ia+56>>2];ik=q[kk>>2];d:{kk=q[kk+4>>2]-ik|0;if((kk|0)<1){break d}mk=(kk>>>2)+ -1|0;if(kk>>2>>>0>mk>>>0){uk=Ia+60|0;lk=Ia+68|0;nk=Ia+8|0;vk=Ia+16|0;ok=Ia+32|0;wk=Ia+12|0;xk=Ia+28|0;tk=Ia+20|0;yk=Ia+24|0;zk=Ia+56|0;while(1){cd(uk,q[(mk<<2)+ik>>2],ij,mk);ik=q[nk>>2];if((ik|0)>=1){Ia=w(jk,mk)<<2;Ak=Ia+hk|0;Bk=Ia+ij|0;Ia=lk;rk=0;while(1){kk=0;e:{if((ik|0)<=0){ik=q[ok>>2];break e}while(1){pk=kk<<2;sk=q[pk+Ia>>2];qk=q[vk>>2];f:{if((sk|0)>(qk|0)){ik=q[ok>>2];q[pk+ik>>2]=qk;break f}ik=q[ok>>2];pk=pk+ik|0;qk=q[wk>>2];if((sk|0)<(qk|0)){q[pk>>2]=qk;break f}q[pk>>2]=sk}kk=kk+1|0;if((kk|0)>2]){continue}break}}kk=rk<<2;Ia=kk+Ak|0;kk=q[kk+Bk>>2]-q[ik+kk>>2]|0;q[Ia>>2]=kk;g:{if((kk|0)>2]){kk=kk+q[tk>>2]|0}else{if((kk|0)<=q[yk>>2]){break g}kk=kk-q[tk>>2]|0}q[Ia>>2]=kk}Ia=ik;rk=rk+1|0;ik=q[nk>>2];if((rk|0)<(ik|0)){continue}break}}mk=mk+ -1|0;if((mk|0)<0){break d}Ia=q[zk>>2];ik=q[Ia>>2];if(q[Ia+4>>2]-ik>>2>>>0>mk>>>0){continue}break}}Hi();F()}return 1}function cd(Ia,ij,hk,ik){var jk=0,kk=0,Ck=0,Dk=0,Ek=0,Fk=0,Gk=0,Hk=0,Ik=0,Jk=0,Kk=0,Lk=0,Mk=0,Nk=0,Ok=0,Pk=0,Qk=0,Rk=0,Sk=0,Tk=0,Uk=0,Vk=0,Wk=0,Xk=0,Yk=0,Zk=0,_k=0,$k=0,al=0,bl=0,cl=0;Dk=T-80|0;T=Dk;Ek=-1;kk=-1;a:{if((ij|0)==-1){break a}kk=ij+1|0;Ek=(kk>>>0)%3|0?kk:ij+ -2|0;kk=ij+ -1|0;if((ij>>>0)%3){break a}kk=ij+2|0}jk=q[Ia+36>>2];ij=q[jk>>2];b:{c:{d:{e:{f:{g:{jk=q[jk+4>>2]-ij>>2;Ck=Ek<<2;Ek=q[q[Ia+32>>2]+28>>2];Ck=q[Ck+Ek>>2];if(jk>>>0<=Ck>>>0){break g}kk=q[Ek+(kk<<2)>>2];if(jk>>>0<=kk>>>0){break g}h:{Ek=q[ij+(Ck<<2)>>2];Kk=(Ek|0)>=(ik|0);if(Kk){break h}Ck=q[ij+(kk<<2)>>2];if((Ck|0)>=(ik|0)){break h}kk=Ck<<3;Hk=q[(kk|4)+hk>>2];jk=Ek<<3;ij=q[(jk|4)+hk>>2];Wk=q[hk+kk>>2];Jk=q[hk+jk>>2];if(!((Wk|0)!=(Jk|0)|(ij|0)!=(Hk|0))){q[Ia+8>>2]=Jk;q[Ia+12>>2]=ij;break c}kk=q[q[Ia+4>>2]+(ik<<2)>>2];q[Dk+72>>2]=0;q[Dk+76>>2]=0;jk=Dk- -64|0;q[jk>>2]=0;q[jk+4>>2]=0;q[Dk+56>>2]=0;q[Dk+60>>2]=0;jk=q[Ia>>2];if(!r[jk+84|0]){kk=q[q[jk+68>>2]+(kk<<2)>>2]}dd(jk,kk,o[jk+24|0],Dk+56|0);kk=q[q[Ia+4>>2]+(Ek<<2)>>2];q[Dk+48>>2]=0;q[Dk+52>>2]=0;q[Dk+40>>2]=0;q[Dk+44>>2]=0;q[Dk+32>>2]=0;q[Dk+36>>2]=0;jk=q[Ia>>2];if(!r[jk+84|0]){kk=q[q[jk+68>>2]+(kk<<2)>>2]}dd(jk,kk,o[jk+24|0],Dk+32|0);kk=q[q[Ia+4>>2]+(Ck<<2)>>2];q[Dk+24>>2]=0;q[Dk+28>>2]=0;q[Dk+16>>2]=0;q[Dk+20>>2]=0;q[Dk+8>>2]=0;q[Dk+12>>2]=0;jk=q[Ia>>2];if(!r[jk+84|0]){kk=q[q[jk+68>>2]+(kk<<2)>>2]}dd(jk,kk,o[jk+24|0],Dk+8|0);Ok=q[Dk+44>>2];kk=q[Dk+16>>2];Ck=q[Dk+40>>2];jk=Ck;Gk=q[Dk+20>>2]-(Ok+(kk>>>0>>0)|0)|0;Sk=kk-jk|0;kk=Nj(Sk,Gk,Sk,Gk);jk=V;Lk=kk;Qk=q[Dk+36>>2];kk=q[Dk+8>>2];Fk=q[Dk+32>>2];Nk=q[Dk+12>>2]-(Qk+(kk>>>0>>0)|0)|0;Rk=kk-Fk|0;Ik=Nj(Rk,Nk,Rk,Nk);kk=Lk+Ik|0;jk=V+jk|0;jk=kk>>>0>>0?jk+1|0:jk;Mk=kk;Lk=q[Dk+52>>2];kk=q[Dk+24>>2];Uk=q[Dk+48>>2];Ik=Uk;Pk=q[Dk+28>>2]-(Lk+(kk>>>0>>0)|0)|0;Vk=kk-Ik|0;Ik=Nj(Vk,Pk,Vk,Pk);kk=Mk+Ik|0;jk=V+jk|0;Mk=kk;Ik=kk>>>0>>0?jk+1|0:jk;if(!(kk|Ik)){break h}Ek=1;kk=0;jk=q[Dk+64>>2];Kk=jk-Ck|0;Xk=q[Dk+68>>2]-((jk>>>0>>0)+Ok|0)|0;jk=Nj(Kk,Xk,Sk,Gk);Tk=V;Ck=jk;jk=q[Dk+56>>2];Ok=jk-Fk|0;Zk=q[Dk+60>>2]-((jk>>>0>>0)+Qk|0)|0;Fk=Nj(Ok,Zk,Rk,Nk);Ck=Ck+Fk|0;jk=V+Tk|0;jk=Ck>>>0>>0?jk+1|0:jk;Yk=Ck;Ck=q[Dk+72>>2];Qk=Ck-Uk|0;Tk=q[Dk+76>>2]-((Ck>>>0>>0)+Lk|0)|0;Fk=Nj(Qk,Tk,Vk,Pk);Ck=Yk+Fk|0;jk=V+jk|0;Lk=Ck;Ck=Ck>>>0>>0?jk+1|0:jk;jk=Hk;Fk=ij;Yk=jk-ij|0;ij=ij>>31;_k=(jk>>31)-(ij+(jk>>>0>>0)|0)|0;jk=Nj(Lk,Ck,Yk,_k);Hk=V;Fk=Nj(Mk,Ik,Fk,ij);ij=Fk+jk|0;jk=V+Hk|0;jk=ij>>>0>>0?jk+1|0:jk;Fk=ij;Uk=jk;ij=Wk;jk=Jk;$k=ij-jk|0;Jk=jk>>31;al=(ij>>31)-(Jk+(ij>>>0>>0)|0)|0;ij=Nj(Lk,Ck,$k,al);Hk=V;Jk=Nj(Mk,Ik,jk,Jk);jk=Jk+ij|0;ij=V+Hk|0;ij=jk>>>0>>0?ij+1|0:ij;Jk=jk;Wk=ij;ij=Oj(Nj(Sk,Gk,Lk,Ck),V,Mk,Ik);jk=Xk-(V+(Kk>>>0>>0)|0)|0;ij=Kk-ij|0;ij=Nj(ij,jk,ij,jk);Hk=V;Kk=ij;ij=Oj(Nj(Rk,Nk,Lk,Ck),V,Mk,Ik);jk=Zk-(V+(Ok>>>0>>0)|0)|0;ij=Ok-ij|0;Gk=Nj(ij,jk,ij,jk);ij=Kk+Gk|0;jk=V+Hk|0;jk=ij>>>0>>0?jk+1|0:jk;Gk=ij;ij=Oj(Nj(Lk,Ck,Vk,Pk),V,Mk,Ik);Ck=Tk-(V+(Qk>>>0>>0)|0)|0;ij=Qk-ij|0;Hk=Nj(ij,Ck,ij,Ck);Ck=Gk+Hk|0;ij=V+jk|0;Ck=Nj(Ck,Ck>>>0>>0?ij+1|0:ij,Mk,Ik);ij=V;Hk=ij;if(!ij&Ck>>>0<=1|ij>>>0<0){break f}Gk=Ck;jk=Hk;while(1){ij=kk<<1|Ek>>>31;Ek=Ek<<1;kk=ij;Nk=!jk&Gk>>>0>7|jk>>>0>0;Gk=(jk&3)<<30|Gk>>>2;jk=jk>>>2;if(Nk){continue}break}break e}jk=Ia;if(Kk){if((ik|0)<=0){q[Ia+8>>2]=0;q[Ia+12>>2]=0;break c}ij=(ik<<1)+ -2|0}else{ij=Ek<<1}ij=(ij<<2)+hk|0;q[jk+8>>2]=q[ij>>2];q[Ia+12>>2]=q[ij+4>>2];break c}Hi();F()}Ek=Ck;kk=Hk;if(Ck-1){break d}}while(1){ij=Pj(Ck,Hk,Ek,kk)+Ek|0;jk=kk+V|0;jk=ij>>>0>>0?jk+1|0:jk;Ek=(jk&1)<<31|ij>>>1;kk=jk>>>1;ij=Nj(Ek,kk,Ek,kk);jk=V;if((Hk|0)==(jk|0)&ij>>>0>Ck>>>0|jk>>>0>Hk>>>0){continue}break}}Ck=Ia+16|0;Ok=q[Ia+24>>2];Qk=Ok<<5;ij=q[Ia+20>>2];Kk=ik<<3;jk=q[(Kk|4)+hk>>2];Hk=jk;Lk=Nj(Ek,kk,$k,al);Gk=Lk;Sk=V;ik=Oj(Fk-Gk|0,Uk-(Sk+(Fk>>>0>>0)|0)|0,Mk,Ik);Nk=jk>>31;Gk=ik;Pk=Nk-(V+(jk>>>0>>0)|0)|0;jk=jk-Gk|0;Rk=Nj(jk,Pk,jk,Pk);Vk=V;jk=q[hk+Kk>>2];hk=jk>>31;Pk=jk;Gk=jk;Kk=hk;Xk=hk;kk=Nj(Ek,kk,Yk,_k);Tk=V;jk=Wk+Tk|0;hk=Jk;Ek=hk+kk|0;if(Ek>>>0>>0){jk=jk+1|0}Ek=Oj(Ek,jk,Mk,Ik);hk=Ek;jk=Xk-(V+(Gk>>>0>>0)|0)|0;hk=Gk-hk|0;Gk=Nj(hk,jk,hk,jk);hk=Gk+Rk|0;jk=V+Vk|0;Rk=hk;Gk=hk>>>0>>0?jk+1|0:jk;jk=Sk+Uk|0;hk=Fk+Lk|0;if(hk>>>0>>0){jk=jk+1|0}hk=Oj(hk,jk,Mk,Ik);jk=hk;Fk=Nk-(V+(Hk>>>0>>0)|0)|0;jk=Hk-jk|0;jk=Nj(jk,Fk,jk,Fk);Nk=V;kk=Oj(Jk-kk|0,Wk-((Jk>>>0>>0)+Tk|0)|0,Mk,Ik);Hk=jk;jk=kk;Fk=Kk-(V+(Pk>>>0>>0)|0)|0;jk=Pk-jk|0;Jk=Nj(jk,Fk,jk,Fk);Fk=Hk+Jk|0;jk=V+Nk|0;jk=Fk>>>0>>0?jk+1|0:jk;i:{if((jk|0)==(Gk|0)&Rk>>>0>>0|Gk>>>0>>0){if((ij|0)==(Qk|0)){if((ij+1|0)<=-1){break b}if(ij>>>0<=1073741822){ij=ij+32&-32;hk=Ok<<6;ij=hk>>>0>>0?ij:hk}else{ij=2147483647}oc(Ck,ij);ij=q[Ia+20>>2]}q[Ia+20>>2]=ij+1;hk=q[Ia+16>>2]+(ij>>>3&536870908)|0;q[hk>>2]=q[hk>>2]|1<<(ij&31);break i}if((ij|0)==(Qk|0)){if((ij+1|0)<=-1){break b}if(ij>>>0<=1073741822){ij=ij+32&-32;ik=Ok<<6;ij=ik>>>0>>0?ij:ik}else{ij=2147483647}oc(Ck,ij);ij=q[Ia+20>>2]}q[Ia+20>>2]=ij+1;ik=q[Ia+16>>2]+(ij>>>3&536870908)|0;Ek=q[ik>>2];bl=ik,cl=Qj(ij)&Ek,q[bl>>2]=cl;ik=hk;Ek=kk}q[Ia+8>>2]=Ek;q[Ia+12>>2]=ik}T=Dk+80|0;return}Gi();F()}function dd(Ia,ij,hk,ik){var dl=0,el=0,fl=0,gl=0,hl=x(0),il=0,jl=0;a:{b:{if(!ik){break b}dl=q[Ia+28>>2]+ -1|0;if(dl>>>0>10){break b}c:{d:{e:{switch(dl-1|0){default:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;gl=o[ij|0];q[dl>>2]=gl;q[dl+4>>2]=gl>>31;ij=ij+1|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 0:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;q[dl>>2]=r[ij|0];q[dl+4>>2]=0;ij=ij+1|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 1:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;gl=p[ij>>1];q[dl>>2]=gl;q[dl+4>>2]=gl>>31;ij=ij+2|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 2:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;q[dl>>2]=s[ij>>1];q[dl+4>>2]=0;ij=ij+2|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 3:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;gl=q[ij>>2];q[dl>>2]=gl;q[dl+4>>2]=gl>>31;ij=ij+4|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 4:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;q[dl>>2]=q[ij>>2];q[dl+4>>2]=0;ij=ij+4|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 5:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){gl=q[ij+4>>2];dl=(el<<3)+ik|0;q[dl>>2]=q[ij>>2];q[dl+4>>2]=gl;ij=ij+8|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 6:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){gl=q[ij+4>>2];dl=(el<<3)+ik|0;q[dl>>2]=q[ij>>2];q[dl+4>>2]=gl;ij=ij+8|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}break a;case 7:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24<1){break c}fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;fl=dl;hl=u[ij>>2];f:{if(x(y(hl))=x(1)?hl>x(0)?~~x(A(x(C(x(hl/x(4294967296)))),x(4294967296)))>>>0:~~x(D(x(x(hl-x(~~hl>>>0>>>0))/x(4294967296))))>>>0:0;jl=~~hl>>>0;break f}gl=-2147483648;jl=0}q[fl>>2]=jl;q[dl+4>>2]=gl;ij=ij+4|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}break c;case 8:dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24<1){break d}fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;fl=dl;il=v[ij>>3];g:{if(y(il)<0x8000000000000000){gl=y(il)>=1?il>0?~~A(C(il/4294967296),4294967295)>>>0:~~D((il- +(~~il>>>0>>>0))/4294967296)>>>0:0;jl=~~il>>>0;break g}gl=-2147483648;jl=0}q[fl>>2]=jl;q[dl+4>>2]=gl;ij=ij+8|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}break d;case 9:break e}}dl=o[Ia+24|0];if(((dl|0)>(hk|0)?hk:dl)<<24>>24>=1){fl=q[q[Ia>>2]>>2];dl=q[Ia+48>>2]+Nj(q[Ia+40>>2],q[Ia+44>>2],ij,0)|0;ij=fl+dl|0;while(1){dl=(el<<3)+ik|0;q[dl>>2]=r[ij|0];q[dl+4>>2]=0;ij=ij+1|0;el=el+1|0;dl=o[Ia+24|0];if((el|0)<((dl|0)>(hk|0)?hk:dl)<<24>>24){continue}break}}if((dl|0)>=(hk|0)){break b}pj((dl<<3)+ik|0,0,hk-dl<<3);break b}if((dl|0)>=(hk|0)){break b}break a}if((dl|0)>=(hk|0)){break b}pj((dl<<3)+ik|0,0,hk-dl<<3)}return}pj((dl<<3)+ik|0,0,hk-dl<<3)}function ed(Ia){Ia=Ia|0;var hk=0;q[Ia>>2]=3680;xe(Ia+108|0);q[Ia>>2]=3140;hk=q[Ia+32>>2];if(hk){q[Ia+36>>2]=hk;ij(hk)}return Ia|0}function fd(Ia){Ia=Ia|0;var ik=0;q[Ia>>2]=3680;xe(Ia+108|0);q[Ia>>2]=3140;ik=q[Ia+32>>2];if(ik){q[Ia+36>>2]=ik;ij(ik)}ij(Ia)}function gd(q){q=q|0;return 6}function hd(Ia){Ia=Ia|0;a:{if(!q[Ia- -64>>2]|!q[Ia+68>>2]|(!q[Ia+44>>2]|!q[Ia+48>>2])){break a}if(!q[Ia+52>>2]){break a}return q[Ia+56>>2]!=0|0}return 0}function id(Ia,ij){Ia=Ia|0;ij=ij|0;var kl=0;if(!(q[ij+56>>2]|r[ij+24|0]!=3)){q[Ia- -64>>2]=ij;kl=1}return kl|0}function jd(Ia,ij){Ia=Ia|0;ij=ij|0;var ll=0,ml=0,nl=0,ol=0;ll=T-16|0;T=ll;q[ll+12>>2]=q[Ia+12>>2];ml=q[ij+20>>2];nl=ml;ol=q[ij+16>>2];if((ml|0)<0?1:(ml|0)<=0?ol>>>0>0?0:1:0){$a(ij,q[ij+4>>2],ll+12|0,ll+16|0);ol=q[ij+16>>2];nl=q[ij+20>>2]}q[ll+8>>2]=q[Ia+16>>2];if((nl|0)<0?1:(nl|0)<=0?ol>>>0>0?0:1:0){$a(ij,q[ij+4>>2],ll+8|0,ll+12|0)}Be(Ia+108|0,ij);T=ll+16|0;return 1}function kd(Ia,ij,pl,ql,rl,sl){Ia=Ia|0;ij=ij|0;pl=pl|0;ql=ql|0;rl=rl|0;sl=sl|0;var tl=0,ul=0,vl=0,wl=0,xl=0,yl=0,zl=0,Al=0,Bl=0,Cl=0,Dl=0,El=0,Fl=0,Gl=0,Hl=0,Il=0,Jl=0,Kl=0,Ll=0,Ml=0;wl=T-48|0;T=wl;q[Ia+68>>2]=sl;Cl=Ia+108|0;ze(Cl);ql=q[Ia+56>>2];rl=q[ql>>2];sl=ql+4|0;tl=q[sl>>2];q[wl+40>>2]=0;q[wl+32>>2]=0;q[wl+36>>2]=0;q[wl+24>>2]=0;q[wl+28>>2]=0;q[wl+16>>2]=0;q[wl+20>>2]=0;q[wl+8>>2]=0;q[wl+12>>2]=0;q[wl>>2]=0;q[wl+4>>2]=0;a:{rl=tl-rl|0;if((rl|0)<1){break a}ul=q[ql>>2];if((ul|0)!=q[sl>>2]){Jl=rl>>2;Kl=Ia+60|0;Ll=pl+4|0;Dl=Ia+8|0;Fl=Ia+16|0;El=Ia+32|0;Gl=Ia+12|0;Hl=Ia+28|0;Bl=Ia+20|0;Il=Ia+24|0;Ml=Ia+56|0;while(1){ld(Kl,q[(Al<<2)+ul>>2],wl+32|0);sl=q[wl+36>>2];tl=sl>>31;rl=q[wl+32>>2];vl=rl>>31;ul=q[wl+40>>2];xl=ul>>31;ql=0;xl=xl^ul+xl;tl=xl+((tl^sl+tl)+(vl^rl+vl)|0)|0;if(tl>>>0>>0){ql=1}b:{if(!(ql|tl)){yl=q[Ia+104>>2];q[wl+32>>2]=yl;rl=yl;break b}yl=q[Ia+104>>2];vl=yl;xl=vl>>31;sl=Oj(Nj(vl,xl,sl,sl>>31),V,tl,ql);q[wl+36>>2]=sl;rl=Oj(Nj(vl,xl,rl,rl>>31),V,tl,ql);q[wl+32>>2]=rl;ql=rl>>31;ql=(vl-(ql+rl^ql)|0)+((sl|0)<0?sl:0-sl|0)|0;ul=(ul|0)>-1?ql:0-ql|0;q[wl+40>>2]=ul}c:{if((rl|0)>=0){tl=sl+yl|0;xl=ul+yl|0;break c}d:{if((sl|0)<=-1){ql=ul>>31;tl=ql+ul^ql;break d}ql=ul>>31;tl=q[Ia+100>>2]-(ql+ul^ql)|0}if((ul|0)<=-1){ql=sl>>31;xl=ql+sl^ql;break c}ql=sl>>31;xl=q[Ia+100>>2]-(ql+sl^ql)|0}ql=q[Ia+100>>2];zl=ql;vl=ql;e:{if(!(tl|xl)){break e}if(!((ql|0)!=(xl|0)|tl)){zl=xl;vl=xl;break e}if(!((ql|0)!=(tl|0)|xl)){zl=tl;vl=tl;break e}if(!((yl|0)>=(xl|0)|tl)){zl=(yl<<1)-xl|0;vl=0;break e}if(!((ql|0)!=(tl|0)|(yl|0)<=(xl|0))){zl=(yl<<1)-xl|0;vl=tl;break e}if(!((ql|0)!=(xl|0)|(yl|0)<=(tl|0))){zl=xl;vl=(yl<<1)-tl|0;break e}if(xl){zl=xl;vl=tl;break e}zl=0;vl=tl;if((yl|0)>=(tl|0)){break e}vl=(yl<<1)-tl|0}q[wl+28>>2]=zl;q[wl+24>>2]=vl;q[wl+40>>2]=0-ul;q[wl+36>>2]=0-sl;q[wl+32>>2]=0-rl;f:{if((rl|0)<=0){rl=yl-ul|0;sl=yl-sl|0;break f}rl=sl>>31;rl=rl+sl^rl;rl=(ul|0)>0?rl:ql-rl|0;tl=ul>>31;tl=tl+ul^tl;sl=(sl|0)>0?tl:ql-tl|0}g:{if(!(rl|sl)){rl=ql;break g}if(!((ql|0)!=(rl|0)|sl)){rl=ql;break g}tl=(ql|0)!=(sl|0);if(!(rl|tl)){rl=ql;break g}if(!((yl|0)>=(rl|0)|sl)){rl=(yl<<1)-rl|0;ql=0;break g}if(!((yl|0)<=(rl|0)|tl)){rl=(yl<<1)-rl|0;break g}if(!((ql|0)!=(rl|0)|(yl|0)<=(sl|0))){rl=ql;ql=(yl<<1)-sl|0;break g}if(rl){ql=sl;break g}rl=0;if((yl|0)>=(sl|0)){ql=sl;break g}ql=(yl<<1)-sl|0}q[wl+20>>2]=rl;q[wl+16>>2]=ql;ul=q[Dl>>2];h:{if((ul|0)<1){break h}xl=(Al<<3)+ij|0;vl=wl+24|0;tl=0;while(1){sl=0;i:{if((ul|0)<=0){ql=q[El>>2];break i}while(1){rl=sl<<2;zl=q[rl+vl>>2];ul=q[Fl>>2];j:{if((zl|0)>(ul|0)){ql=q[El>>2];q[rl+ql>>2]=ul;break j}ql=q[El>>2];rl=rl+ql|0;ul=q[Gl>>2];if((zl|0)<(ul|0)){q[rl>>2]=ul;break j}q[rl>>2]=zl}sl=sl+1|0;ul=q[Dl>>2];if((sl|0)<(ul|0)){continue}break}}sl=tl<<2;rl=sl+(wl+8|0)|0;vl=q[sl+xl>>2]-q[ql+sl>>2]|0;q[rl>>2]=vl;sl=rl;rl=q[Hl>>2];zl=vl+q[Bl>>2]|0;k:{l:{if((vl|0)<(rl|0)){break l}if((vl|0)<=q[Il>>2]){break k}zl=vl-q[Bl>>2]|0}q[sl>>2]=zl}vl=ql;tl=tl+1|0;if((tl|0)<(ul|0)){continue}break}tl=0;vl=wl+16|0;if((ul|0)<1){break h}while(1){sl=0;if((ul|0)>=1){while(1){rl=sl<<2;zl=q[rl+vl>>2];ul=q[Fl>>2];m:{if((zl|0)>(ul|0)){q[ql+rl>>2]=ul;break m}rl=ql+rl|0;ul=q[Gl>>2];if((zl|0)<(ul|0)){q[rl>>2]=ul;break m}q[rl>>2]=zl}sl=sl+1|0;ul=q[Dl>>2];if((sl|0)<(ul|0)){continue}break}rl=q[Hl>>2]}vl=tl<<2;sl=vl+wl|0;vl=q[vl+xl>>2]-q[ql+vl>>2]|0;q[sl>>2]=vl;n:{if((vl|0)<(rl|0)){vl=vl+q[Bl>>2]|0}else{if((vl|0)<=q[Il>>2]){break n}vl=vl-q[Bl>>2]|0}q[sl>>2]=vl}vl=ql;tl=tl+1|0;if((tl|0)<(ul|0)){continue}break}}tl=q[Ia+104>>2];ul=q[wl+8>>2];o:{if((tl|0)<(ul|0)){ul=ul-q[Ia+96>>2]|0;break o}if((ul|0)>=(0-tl|0)){break o}ul=q[Ia+96>>2]+ul|0}q[wl+8>>2]=ul;rl=q[wl+12>>2];p:{if((tl|0)<(rl|0)){rl=rl-q[Ia+96>>2]|0;break p}if((rl|0)>=(0-tl|0)){break p}rl=q[Ia+96>>2]+rl|0}q[wl+12>>2]=rl;ql=q[wl>>2];q:{if((tl|0)<(ql|0)){ql=ql-q[Ia+96>>2]|0;break q}if((ql|0)>=(0-tl|0)){break q}ql=q[Ia+96>>2]+ql|0}q[wl>>2]=ql;sl=q[wl+4>>2];r:{if((tl|0)<(sl|0)){sl=sl-q[Ia+96>>2]|0;break r}if((sl|0)>=(0-tl|0)){break r}sl=q[Ia+96>>2]+sl|0}tl=Al<<1;q[wl+4>>2]=sl;vl=rl>>31;xl=vl+rl^vl;vl=ul>>31;xl=xl+(vl+ul^vl)|0;vl=sl>>31;zl=vl+sl^vl;vl=ql>>31;s:{if((xl|0)<(zl+(vl+ql^vl)|0)){Ae(Cl,0);ql=(tl<<2)+pl|0;if((ul|0)<=-1){ul=q[Ia+96>>2]+ul|0}q[ql>>2]=ul;if((rl|0)>-1){sl=rl;break s}sl=q[Ia+96>>2]+rl|0;break s}Ae(Cl,1);rl=(tl<<2)+pl|0;if((ql|0)<=-1){ql=q[Ia+96>>2]+ql|0}q[rl>>2]=ql;if((sl|0)>-1){break s}sl=q[Ia+96>>2]+sl|0}q[(tl<<2)+Ll>>2]=sl;Al=Al+1|0;if((Al|0)>=(Jl|0)){break a}ql=q[Ml>>2];ul=q[ql>>2];if(q[ql+4>>2]-ul>>2>>>0>Al>>>0){continue}break}}Hi();F()}T=wl+48|0;return 1}function ld(Ia,ij,pl){Ia=Ia|0;ij=ij|0;pl=pl|0;var ql=0,rl=0,sl=0,Nl=0,Ol=0,Pl=0,Ql=0,Rl=0,Sl=0,Tl=0,Ul=0,Vl=0,Wl=0,Xl=0,Yl=0,Zl=0,_l=0,$l=0,am=0,bm=0,cm=0,dm=0,em=0,fm=0,gm=0,hm=0;rl=T-96|0;T=rl;ql=q[Ia+16>>2];o[rl+92|0]=1;q[rl+88>>2]=ij;q[rl+84>>2]=ij;q[rl+80>>2]=ql;Nl=q[Ia+20>>2];sl=q[Nl>>2];a:{b:{c:{d:{ql=q[q[ql+28>>2]+(ij<<2)>>2];if(q[Nl+4>>2]-sl>>2>>>0>ql>>>0){ql=q[q[Ia+8>>2]+(q[sl+(ql<<2)>>2]<<2)>>2];sl=q[Ia+4>>2];if(!r[sl+84|0]){ql=q[q[sl+68>>2]+(ql<<2)>>2]}q[rl+72>>2]=0;q[rl+76>>2]=0;Nl=rl- -64|0;q[Nl>>2]=0;q[Nl+4>>2]=0;q[rl+56>>2]=0;q[rl+60>>2]=0;dd(sl,ql,o[sl+24|0],rl+56|0);if((ij|0)==-1){break a}ql=ij+1|0;Nl=(ql>>>0)%3|0?ql:ij+ -2|0;Xl=((ij>>>0)%3|0?-1:2)+ij|0;cm=Ia+28|0;Ol=!q[cm>>2];dm=Ia+20|0;em=Ia+16|0;fm=Ia+8|0;while(1){sl=Nl;ql=Xl;e:{if(Ol){break e}ql=ij+1|0;sl=(ql>>>0)%3|0?ql:ij+ -2|0;ql=ij+ -1|0;if((ij>>>0)%3){break e}ql=ij+2|0}Ol=q[dm>>2];ij=q[Ol>>2];sl=q[q[q[em>>2]+28>>2]+(sl<<2)>>2];if(q[Ol+4>>2]-ij>>2>>>0<=sl>>>0){break d}sl=q[q[fm>>2]+(q[ij+(sl<<2)>>2]<<2)>>2];Ol=Ia+4|0;ij=q[Ol>>2];if(!r[ij+84|0]){sl=q[q[ij+68>>2]+(sl<<2)>>2]}q[rl+48>>2]=0;q[rl+52>>2]=0;q[rl+40>>2]=0;q[rl+44>>2]=0;q[rl+32>>2]=0;q[rl+36>>2]=0;dd(ij,sl,o[ij+24|0],rl+32|0);sl=q[dm>>2];ij=q[sl>>2];ql=q[q[q[em>>2]+28>>2]+(ql<<2)>>2];if(q[sl+4>>2]-ij>>2>>>0<=ql>>>0){break c}sl=q[q[fm>>2]+(q[ij+(ql<<2)>>2]<<2)>>2];ij=q[Ol>>2];if(!r[ij+84|0]){sl=q[q[ij+68>>2]+(sl<<2)>>2]}Ol=rl+24|0;ql=Ol;q[ql>>2]=0;q[ql+4>>2]=0;Rl=rl+16|0;ql=Rl;q[ql>>2]=0;q[ql+4>>2]=0;q[rl+8>>2]=0;q[rl+12>>2]=0;dd(ij,sl,o[ij+24|0],rl+8|0);ql=q[rl+8>>2];ij=q[rl+56>>2];Yl=ql-ij|0;Zl=q[rl+60>>2];sl=q[rl+12>>2]-(Zl+(ql>>>0>>0)|0)|0;_l=q[rl+40>>2];ql=q[rl+64>>2];gm=_l-ql|0;$l=q[rl+68>>2];_l=q[rl+44>>2]-($l+(_l>>>0>>0)|0)|0;am=Nj(Yl,sl,gm,_l);bm=Pl-am|0;Sl=Sl-(V+(Pl>>>0>>0)|0)|0;Pl=q[Rl>>2];am=Pl-ql|0;Rl=q[Rl+4>>2]-((Pl>>>0>>0)+$l|0)|0;Pl=q[rl+32>>2];$l=Pl-ij|0;Zl=q[rl+36>>2]-((Pl>>>0>>0)+Zl|0)|0;ql=Nj(am,Rl,$l,Zl);Pl=ql+bm|0;ij=V+Sl|0;ij=Pl>>>0>>0?ij+1|0:ij;Sl=ij;ql=Ql;Ul=Yl;hm=sl;Ql=q[rl+48>>2];ij=q[rl+72>>2];sl=Ql-ij|0;Yl=q[rl+76>>2];bm=q[rl+52>>2]-(Yl+(Ql>>>0>>0)|0)|0;Ul=Nj(Ul,hm,sl,bm);Ql=ql+Ul|0;ql=V+Vl|0;ql=Ql>>>0